首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django-ForeignKey,OneToOneField,ManyToManyField

django-ForeignKey,OneToOneField,ManyToManyField

作者头像
西西嘛呦
发布2020-08-26 10:53:24
6680
发布2020-08-26 10:53:24
举报

进入到django自带的related.py中,可以看到

1.ForeignKey

初始化的参数有:

to, on_delete, related_name=None, 
related_query_name=None,limit_choices_to=None, 
parent_link=False, to_field=None,
db_constraint=True, **kwargs

假设我们有:

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:被关联表的名称

on_delete:删除带有外键的信息时,定义了删除的操作:

  • CASCADE:删除作者信息一并删除作者名下的所有书的信息;
  • PROTECT:删除作者的信息时,采取保护机制,抛出错误:即不删除Books的内容;
  • SET_NULL:只有当null=True才将关联的内容置空;
  • SET_DEFAULT:设置为默认值;
  • SET( ):括号里可以是函数,设置为自己定义的东西;
  • DO_NOTHING:字面的意思,啥也不干,你删除你的干我毛线关系;

to_field:被关联的字段,一般是主键,也可以是值唯一的字段

2.OneToOne

初始化参数有:

to, on_delete, to_field=None, **kwargs

3.ManyToMany

初始化参数有:

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档