字段
一个模型最重要也是唯一必需的部分,是它定义的数据库字段
字段名称限制
1、字段名不能是pythohn保留字,这样会导致python语法错误
2、字段不能包含连续一个以上的下划线,这样会和Django查询语句语法冲突
通用字段选项
null 如果设置为 True 的话,Django将在数据库中存储空值为 NULL 。默认为 False
blank 如果是 True ,该字段允许留空,默认为 False
choices 一个包含双元素元组的可迭代的对象,用于给字段提供选项
db_column 当前字段在数据库中对应的列的名字
db_index 如果为 True,创建表格时对这一列穿件数据库索引
default 字段默认值
editable 如果为False,这个字段在管理那界面或者表单将不能编辑,默认为True
help_text 在管理界面表单对象里显示在字段下面的额外帮助文本。即使你没有管理表单这个属性对文档也是有用的
primary_key 如果为 True ,这个字段就会成为模型的主键
radio_admin 对于 ForeignKey 或者拥有 choices 设置的字段,Django管理界面会使用列表选择框(<select>)。如果 radio_admin 设置为 True 的话,Django就会使用单选按钮界面。 如果字段不是 ForeignKey 或者没有 choices 设置的话,就不要对字段只用这个选项。
unique 如果是 True ,这个字段的值在整个表中必须是唯一的
unique_for_date 把它的值设成一个 DataField 或者 DateTimeField 的字段的名称,可以确保字段在这个日期内不会出现重复值
unique_for_month 和 unique_for_date 类似,只是要求字段在指定字段的月份内唯一
unique_for_year 和 unique_for_date 及 unique_for_month 类似,只是时间范围变成了一年
verbose_name ManyToManyField 和 OneToOneField 之外的字段都接受一个详细名称作为第一个位置参数。如果详细名称没有给定的话,Django会把字段的属性名中的下划线转化成空格后的字符串当作详细名称。
例:详细名称是 "Person‘s first name" : first_name = models.CharField("Person‘s first name", maxlength=30) 下面的例子中,详细名称是 "first name" : first_name = models.CharField(maxlength=30) ForeignKey 、 ManyToManyField 和 OneToOneField 要求第一个参数是一个模型类,所以只能使用关键字参数 verbose_name : poll = models.ForeignKey(Poll, verbose_name="the related poll") sites = models.ManyToManyField(Site, verbose_name="list of sites") place = models.OneToOneField(Place, verbose_name="related place") 这种转换不会把 verbose_name 的首字母大写,Django会根据需求自动大写首字母。