首页 > 技术文章 > Django(八): Model组件和Admin

lancelotxly 2019-05-15 20:00 原文

Model组件: 
(字段)作用: 1. 后端建表
2. 限制并验证admin输入的数据类型
使用: models.py中创建表
每一张表是一个类class, 表的每一项数据是这个类的对象obj
class Table(model.Models):
field = model.Field

1. Field类型: 1) 后端数据库有的字段 2) Admin额外提供验证的字段

字段名 参数 数据库中存储类型
/*************** 后端数据库有的字段 **************************/
AutoField(Field) primary_key # INT PRIMARY KEY AUTO_INCREMENT
IntegerField(Field) / # INT
BooleanField(Field) / # TINYINT(1)
CharField(Field) maxlength # VARCHAR(max_length)
FloatField(Field) / # DOUBLE
DecimalField(Field) max_digits(总位数) # DECIMAL
decimal_places(小数位长度)
TextField(Field) / # LONGTEXT
DateField(Field) / # DATE // YYYY-MM-DD
DateTimeField(DateField) / # DATETIME // YYYY-MM-DD HH:MM:SS
TimeField(DateField) / # TIME // HH:MM:SS

/**************** Admin额外提供验证的字段 **********************/
EmailField(CharField) / # VARCHAR
URLField(CharField) / # VARCHAR
IPAddressField(Field) / # CHAR(15)
FileField(Field) upload_to='地址' # VARCHAR
ImageField(FileField) upload_to='相对根地址的路径' # VARCHAR
width_field=None, height_width=None

Model字段参数的作用:
1. 限制约束数据
null = False # NOT NULL
default = None # DEFAULT = None
primary_key = True # PRIMARY KEY
unique = True # UNIQUE
db_index = True # INDEX

2. 用于admin显示
verbose_name # admin中显示的字段名
help_text # admin中显示的帮助信息
choices = [(0,'上海'),(1,'北京'),] # admin中的选择框
blank # admin中是否可为空
editable # admin中是否可编辑

3. 错误信息反馈
error_messages = {
'字段参数':'错误反馈',
'invalid': '格式错误', # 正则校验错误
}
4. 自定义验证
validators = []
元信息:
class UserInfo(models.Model):
nid = models.AutoField(primary_key=True)
user = models.CharField(max_length=20)
class Meta:
db_table = 'table_name' # 数据库中的自定义表名字
index_together = [('nid','user')] # 建立联合索引
unique_together = [('nid','user')] # 建立联合唯一索引
verbose_name = 'table_name' # admin中显示的表名字


Admin: 数据库管理
LANGUAGE_CODE = 'en-us' #LANGUAGE_CODE = 'zh-hans' // 配置中文界面
python manage.py create superuser // 注册管理员

1. 注册modeladmin: 1) admin.site.register(Book)
2) @admin.register(Book)

2. admin定制: 1) class myAdmin(admin.ModelAdmin)
2) @admin.register(Book,myAdmin)
 

推荐阅读