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文件夹
本文来自博客园,作者:Yi个人,转载请注明原文链接:https://www.cnblogs.com/feifei-cyj/p/14404110.html