以验证码得model设计为例
创建model
在users app中得models.py中
class VerifyCode(models.Model):
"""
短信验证码
"""
code = models.CharField(max_length=10, verbose_name="验证码")
mobile = models.CharField(max_length=11, verbose_name="电话")
#注意函数now()代表编译时间,now代表添加时间
add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
#此处配置可以在后台显示得时候由默认 VerifyCode显示为短信验证码
class Meta:
verbose_name = "短信验证码"
verbose_name_plural = verbose_name
#在查看详情时,更改默认显示 VerifyCodeObject 为具体得验证码
def __str__(self):
return self.code
注意:在每次修改model中的字段的时候,都需要重新进行migate和makemigateions操作
在adminx.py中注册
先定义管理类:
class VerifyCodeAdmin(object):
#配置了是要在xadmin中显示的字段,此处展示的为验证码,手机,添加时间注意与model字段一致
list_display = ['code','mobile','add_time']
进行注册:
xadmin.site.register(VerifyCode, VerifyCodeAdmin)
运行项目在后台查看,并验证
models字段属性
1、null=True
数据库中字段是否可以为空
2、blank=True
django的 Admin 中添加数据时是否可允许空值
3、primary_key = False
主键,对AutoField设置主键后,就会代替原来的自增 id 列
4、auto_now 和 auto_now_add
auto_now 自动创建---无论添加或修改,都是当前操作的时间
auto_now_add 自动创建---永远是创建时的时间
5、choices
GENDER_CHOICE = (
(u'M', u'Male'),
(u'F', u'Female'),
)
gender = models.CharField(max_length=2,choices = GENDER_CHOICE)
6、max_length
7、default 默认值
8、verbose_name Admin中字段的显示名称
9、name|db_column 数据库中的字段名称
10、unique=True 不允许重复
11、db_index = True 数据库索引
12、editable=True 在Admin里是否可编辑
13、error_messages=None 错误提示
14、auto_created=False 自动创建
15、help_text 在Admin中提示帮助信息
16、validators=[]
17、upload-to 上传到哪个位置,更多与image,filepath配合使用