字段类型
注意:null 是数据库范畴的概念,blank 是表单验证范畴的。
在设置外键时,需要通过 on_delete选项指明主表删除数据时,对于外键引用表数据如何处理,在django.db.models中包含了可选常量:
- CASCADE 级联操作,当主表中被连接的一条数据删除时,从表中所有与之关联的数据同时被删除
- PROTECT 当主表中的一行数据删除时,由于从表中相关字段是受保护的外键,所以都不允许删除
- SET_NULL 当主表中的一行数据删除时,从表中所有与之关联的数据的相关字段设置为null,此时注意定义外键时,这个字段必须可以允许为空
- SET_DEFAULT 当主表中的一行数据删除时,从表中所有相关的数据的关联字段设置为默认值,此时注意定义外键时,这个外键字段应该有一个默认值
- DO_NOTHING什么都不做,一切都看数据库级别的约束,注数据库级别的默认约束为RESTRICT,这个约束与django中的models.PROTECT相似
- SET() 当主表中的一条数据删除时,从表中所有的关联数据字段设置为SET()中设置的值,与models.SET_DEFAULT相似,只不过此时从表中的相关字段不需要设置default参数
```
def func():
return 10
class MyModel(models.Model):
user = models.ForeignKey(
to = "User",