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 @ 2024-08-19 15:54  未来可期_Durant  阅读(13)  评论(0)    收藏  举报