进入到django自带的related.py中,能够看到django
1.ForeignKeyapp
初始化的参数有:函数
to, on_delete, related_name=None,
related_query_name=None,limit_choices_to=None,
parent_link=False, to_field=None,
db_constraint=True, **kwargs
假设咱们有:spa
class Author(models.Model): author = models.CharField(max_length=250) class Books(models.Model): book = models.ForeignKey(to='Author',on_delete=models.CASCADE,to_field='id')
to:被关联表的名称code
on_delete:删除带有外键的信息时,定义了删除的操做:blog
- CASCADE:删除做者信息一并删除做者名下的全部书的信息;
- PROTECT:删除做者的信息时,采起保护机制,抛出错误:即不删除Books的内容;
- SET_NULL:只有当null=True才将关联的内容置空;
- SET_DEFAULT:设置为默认值;
- SET( ):括号里能够是函数,设置为本身定义的东西;
- DO_NOTHING:字面的意思,啥也不干,你删除你的干我毛线关系;
to_field:被关联的字段,通常是主键,也能够是值惟一的字段it
2.OneToOnetable
初始化参数有:class
to, on_delete, to_field=None, **kwargs
3.ManyToManymodel
初始化参数有:
to, related_name=None, related_query_name=None, limit_choices_to=None, symmetrical=None, through=None, through_fields=None, db_constraint=True, db_table=None, swappable=True, **kwargs
、