null
如果为 True ,Django 将用 NULL 来在数据库中存储空值。 默认值是 False .
blank
如果为 True ,该字段允许不填。默认为 False 。在Django admin 中是否为空
要注意,这与 null 不同。 null 纯粹是数据库范畴的,而 blank 是数据验证范畴的。如果
一个字段的 blank=True ,表单的验证将允许该字段是空值。如果字段的 blank=False ,该字
段就是必填的。
choices :储存在内存当中,且在django admin 当中会自动生成下拉选择列表
由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 如果设置
了choices ,默认的表单将是一个选择框而不是标准的文本框,而且这个选择框的选项就是
choices 中的选项
from django.db import models
class Person(models.Model):
SHIRT_SIZES = (
('S', 'Small'),
('M', 'Medium'),
('L', 'Large'),
)
name = models.CharField(max_length=60)
shirt_size = models.CharField(max_length=1, choices=SHIRT_SIZES,default=1)
模版获取choices 的值:https : //my.oschina.net/esdn/blog/832982
primary_key
如果为 True ,那么这个字段就是模型的主键 ,对AutoField设置主键后,就会代替原来的自增 id 列
如果你没有指定任何一个字段的 primary_key=True ,Django 就会自动添加一个 IntegerField
字段做为主键,所以除非你想覆盖默认的主键行为,否则没必要设置任何一个字段
的 primary_key=True 。
from django.db import models
class Fruit(models.Model):
name = models.CharField(max_length=100, primary_key=True)
Mysql 数据库默认 ID 为主键,默认情况下,Django 会给每个模型添加 自增主键字段(AutoField)
id = models.AutoField(primary_key=True)
auto_now 和 auto_now_add
- auto_now 自动创建---无论添加或修改,都是当前操作的时间
- auto_now_add 自动创建---永远是创建时的时间
注意:1、如果设置auto_now 和 auto_now_add ,Django Admin 后台默认为不显示状态,即不可编辑(editable=False),如果要设置为当前时间,也可以修改,需如下设置
import django.utils.timezone as timezone # 导入时间模块
dww = models.DateTimeField(default=timezone.now) # 设置默认为当前时间
2、自动更新的时候,需要使用 xxx.save() ,时间才会自动更新
obj = models.xxx.objects.fillter(id=1).first()
obj.name='admin'
obj.save()
verbose_name Admin中字段的显示名称
name|db_column 数据库中的字段名称
unique=True 不允许重复 ,唯一索引
db_index = True 数据库索引
editable=True 在Admin里是否可编辑
error_messages=None 错误提示 ,Django Admin 中的错误提示
auto_created=False 自动创建
help_text 在Admin中提示帮助信息
validators=[] 自定义错误信息
upload-to 上传