Django 关系字段类型

关系型数据库的关系包括三种类型:

  • ForeignKey:一对多,将字段定义在多的一端中。

    # 一个多对一的关系。需要两个位置参数:模型相关的类和 on_delete 选项。
    goods = models.ForeignKey('Goods', on_delete=models.CASCADE)
  • ManyToManyField:多对多,将字段定义在任意一端中。

    user = models.ManyToManyField('User',on_delete=models.CASCADE)
  • OneToOneField:一对一,将字段定义在任意一端中。

    user = models.OneToOneField('User', on_delete=models.CASCADE)
  • 自关联关系 使用'self'指定

    # 一对多的自关联
    bid = models.ForeignKey('self',null=True,blank=True)
    # 多对多的自关联
    bid= models.ManyToManyField('self',null=True,blank=True)

    on_delete的作用:

    当一个引用的对象被删除时,Django 将模拟 on_delete参数所指定的 SQL 约束的行为

    常用的值:

    • CASCADE:级联删除

      Django 模拟了 SQL 约束 ON DELETE CASCADE 的行为,也删除了包含 ForeignKey 的对象

    • PROTECT:防止删除被引用对象

posted @   未来可期_Durant  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2021-08-19 Vue|退出功能
点击右上角即可分享
微信分享提示