null:如果为 True,当该字段为空时,Django 会将数据库中该字段设置为 NULL。默认为 False 。
blank:如果设置为 True,该字段允许为空。默认为 False。
null 选项仅仅是数据库层面的设置,然而 blank是涉及表单验证方面。如果一个字段设置为 blank=True ,在进行表单验证时,接收的数据该字段值允许为空,而设置为 blank=False 时,不允许为空。
choice:二元组
default:默认值
help_text:额外的“帮助”文本,随表单控件一同显示。即便你的字段未用于表单,它对于生成文档也是很有用的。
primary_key:如果设置为 True ,将该字段设置为该模型的主键。
在一个模型中,如果你没有对任何一个字段设置 primary_key=True 选项。 Django 会自动添加一个 IntegerField 字段,并设置为主键,主键字段是只可读的。
unique:是否唯一,默认False
verbose_name:字段备注名,为设置,django会将字段的下划线转换为空格做为备注
2.关联关系
ForeignKey:一对多
ManyToManyField:多对多
3.Meta选项
模型的元数据即“所有不是字段的东西”,比如排序选项( ordering ),数据库表名( db_table ),或是阅读友好的单复数名( verbose_name 和 verbose_name_plural )。这些都不是必须的,并且在模型当中添加 Meta类 也完全是可选的。
4.模型方法
1.__str__():返回友好的对象打印值
5.模型继承
1.抽象基类
抽象基类在你要将公共信息放入很多模型时会很有用。编写你的基类,并在 Meta 类中填入 abstract=True。该模型将不会创建任何数据表。当其用作其它模型类的基类时,它的字段会自动添加至子类。
Code: [全选] [Expand/Collapse]
- from django.db import models
- class CommonInfo(models.Model):
- name = models.CharField(max_length=100)
- age = models.PositiveIntegerField()
- class Meta:
- abstract = True
- class Student(CommonInfo):
- home_group = models.CharField(max_length=5)