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

浙公网安备 33010602011771号