zoukankan      html  css  js  c++  java
  • Django模型-admin后台管理数据

    github地址:https://github.com/Oneperson1128/DjangoDemo  

    1、设计数据库表

    在loginDemo2文件夹代码基础上,修改models.py文件

    from django.db import models
    
    # Create your models here.
    
    '''
    默认生成自增id,不需要声明该字段
    '''
    class Event(models.Model):
        name = models.CharField(max_length=100)  #发布会标题
        limit = models.IntegerField() #参加人数
        status = models.BooleanField()  #状态,表示该发布会是否启用
        address = models.CharField(max_length=200)  #发布会地址
        start_time = models.DateTimeField('events time')  #发布会开始时间
        create_time = models.DateTimeField(auto_now=True)  #创建时间,自动获取当前时间
    
        '''
        python 如何将对象以str的方式显示出来
        '''
        def __str__(self):
            return self.name
    
    
    class Guest(models.Model):
        event = models.ForeignKey(Event)   #关联发布会id
        realname =models.CharField(max_length=64)  #来宾姓名
        phone = models.CharField(max_length=16)  #手机号
        email =models.EmailField() #邮箱
        sign = models.BooleanField()  #签到状态
        create_time = models.DateTimeField(auto_now=True)  #创建时间,自动获取当前时间
    
        class Meta:
            unique_together = ('event','phone')
    
        def __str__(self):
            return self.realname

    2、数据库迁移

    python3 manage.py makemigrations loginApp
    

    python3 manage.py migrate

    3、admin后台管理

    修改admin.py文件

    from django.contrib import admin
    
    # Register your models here.
    from loginApp.models import Event, Guest   #用pycharm打开时,open到manage.py的文件夹,不然导入后会报错找不到模块
    
    admin.site.register(Event)
    admin.site.register(Guest)

    4、admin后台显示更多的字段

    from django.contrib import admin
    
    # Register your models here.
    from loginApp.models import Event, Guest
    
    class EventAdmin(admin.ModelAdmin):
        list_display = ['id','name','status','start_time']
    
    class GUestAdmin(admin.ModelAdmin):
        list_display = ['id','realname','phone','email','sign','create_time','event']
    
    admin.site.register(Event,EventAdmin)
    admin.site.register(Guest,GUestAdmin)
    

    5、增加搜索和过滤栏

    from django.contrib import admin
    
    # Register your models here.
    from loginApp.models import Event, Guest
    
    class EventAdmin(admin.ModelAdmin):
        list_display = ['id','name','status','start_time']
        search_fields = ['name']   #搜索框根据name匹配
        list_filter = ['status']   #过滤框根据status过滤
    
    class GUestAdmin(admin.ModelAdmin):
        list_display = ['id','realname','phone','email','sign','create_time','event']
        search_fields = ['realname','phone']  #搜索框根据realname匹配或者phone匹配
        list_filter = ['sign']   #过滤框根据sign过滤
    
    admin.site.register(Event,EventAdmin)
    admin.site.register(Guest,GUestAdmin)
    

    说明:Django数据库字段类型及说明

    AutoField 用于存放 integer 类型的数字。
    BooleanField 用于存放布尔类型的数据(Ture 或 False)
    CharField 用于存放字符型的数据,需要指定长度 max_length。
    CommaSeparatedIntegerField 用于存放用逗号隔开的 integer 类型的数据。
    DateField 日期型,必须是“YYYY-MM-DD”格式
    DateTimeField 日期时间型,必须是"YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] "格式。
    DecimalField 小数型,用于存放小数的数字。
    EmailField 电子邮件类型
    FilePathField 文件路径类类型,FilePathFields must have either 'allow_files' or 'allow_folders' set to True.
    FloatField 浮点型。用于存放浮点型数据。
    IntegerField 用于存放 integer 类型的数字。
    BigIntegerField 用于存放大 integer 类型的数字,最大数支持:9223372036854775807
    GenericIPAddressField 存放 IP 地址的类型,IPv4 和 IPv6 地址,字符串格式。
    NullBooleanField vlaue must be either None, True or False.
    PositiveIntegerField Positive integer
    PositiveSmallIntegerField Positive small integer
    SlugField 需要定义 max_length 值。
    SmallIntegerField Small integer
    TextField 用于存放文本类型的数据。
    TimeField 时间类型。"HH:MM[:ss[.uuuuuu]]" 格式
    URLField 用于存放 URL 地址
    BinaryField Raw binary data

    github源代码:https://github.com/Oneperson1128/DjangoDemo.git    本文章参考loginDemo3文件夹

    你要相信 一切都会好起来
  • 相关阅读:
    升级MySQL5.7.22版本_总结记录
    初探分布式环境的指挥官ZooKeeper
    利用ROS工具从bag包中提取图片和.csv文件
    安装tensorflow出现的python-setuptools 20.7.0问题
    evo 评测工具修改背景颜色和线条等参数
    Ubuntu上下载百度网盘资料
    okvis 编译出现ceres-solver错误的解决办法
    opencv各个模块功能总结
    计算两幅图的单应矩阵,实现图像拼接
    特征提取与匹配、基础矩阵、单应矩阵、极限约束
  • 原文地址:https://www.cnblogs.com/feifei-cyj/p/14404110.html
Copyright © 2011-2022 走看看