Django模型中带有外键的重复值

因此,我的Django应用中有一些模型如下所示:

class WHID(models.Model):
    whid = models.CharField(max_length=8)

class Department(models.Model):
    name = models.CharField(max_length=50)
    whid = models.ForeignKey(WHID, on_delete=models.CASCADE)

我想拥有它,以便不能为每个WHID创建重复的部门名称。

因此,如果我在WHID表中有两个条目:

 id  whid 
  1  whid1
  2  whid2

然后在部门表中:

  name         whid
  Department1    1
  Department1    2
  Department2    1
  Department2    2
  Department1    1 <----How do I stop this record from being created

任何帮助表示赞赏。谢谢。

威廉·范昂塞姆

您可以unique=True中设置ForeignKey,但这基本上是OneToOneField[Django-doc],因此您可以将模型重写为:

class Department(models.Model):
    name = models.CharField(max_length=50)
    whid = models.OneToOneField(WHID, on_delete=models.CASCADE)

但是,如果您想为给定的允许多个 ,但对于同一个具有唯一的,则可以使用[Django-doc]的以后的版本DepartmentWHID nameWHIDUniqueConstraint

class Department(models.Model):
    name = models.CharField(max_length=50)
    whid = models.ForeignKey(WHID, on_delete=models.CASCADE)

    class Meta:
        constraints = [
            models.UniqueConstraint('name', 'whid', name='whid_name')
        ]

或在之前,您可以使用unique_together[Django-doc]

class Department(models.Model):
    name = models.CharField(max_length=50)
    whid = models.ForeignKey(WHID, on_delete=models.CASCADE)

    class Meta:
        unique_together = [
            ['name', 'whid']
        ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何过滤 Django 模型以仅包含出现在子表(带有外键)中的模型?

来自分类Dev

django上传到带有外键的图像模型给用户

来自分类Dev

带有外键的模型上的Django分页

来自分类Dev

在多个页面中带有(外键)的多个模型表单。Django的

来自分类Dev

从带有外键的模型中检索数据

来自分类Dev

现有表中的Django模型外键

来自分类Dev

Django模型:外键的唯一值

来自分类Dev

Django迁移命令失败,并带有用户模型的外键

来自分类Dev

带有不同模型的外键的 DJango 查询集过滤器

来自分类Dev

django外键(用户)在模型中

来自分类Dev

Django模型中的外键数组

来自分类Dev

Django模型:使用外键中的字段

来自分类Dev

Django模型外键中的属性错误

来自分类Dev

Django模型中的自动外键

来自分类Dev

Django模型中的外键数组

来自分类Dev

django中不同模型字段的外键

来自分类Dev

带有外键的Django if语句

来自分类Dev

两个外键字段,正好一个字段设置为一个值,而在带有MySQL数据库的Django模型中,另一个为null

来自分类Dev

如何在Django模型中创建一个值为值或外键的字段?

来自分类Dev

带内联的Django管理员,带有2个外键的1个模型指向2个不同模型

来自分类Dev

如何使用SwampDragon创建带有外键的模型?

来自分类Dev

如何在Django中模拟模型的外键模型?

来自分类Dev

如何在Django模型中设置外键字段以不返回任何值?

来自分类Dev

Django模型:汇总多个外键字段值的总和

来自分类Dev

Django模型,循环外键

来自分类Dev

Django多重外键模型

来自分类Dev

Django中的选择性外键用法(也许带有limit_choices_to参数?)

来自分类Dev

django中间模型,没有外键错误

来自分类Dev

遍历抽象Django模型的所有与外键相关的子代

Related 相关文章

  1. 1

    如何过滤 Django 模型以仅包含出现在子表(带有外键)中的模型?

  2. 2

    django上传到带有外键的图像模型给用户

  3. 3

    带有外键的模型上的Django分页

  4. 4

    在多个页面中带有(外键)的多个模型表单。Django的

  5. 5

    从带有外键的模型中检索数据

  6. 6

    现有表中的Django模型外键

  7. 7

    Django模型:外键的唯一值

  8. 8

    Django迁移命令失败,并带有用户模型的外键

  9. 9

    带有不同模型的外键的 DJango 查询集过滤器

  10. 10

    django外键(用户)在模型中

  11. 11

    Django模型中的外键数组

  12. 12

    Django模型:使用外键中的字段

  13. 13

    Django模型外键中的属性错误

  14. 14

    Django模型中的自动外键

  15. 15

    Django模型中的外键数组

  16. 16

    django中不同模型字段的外键

  17. 17

    带有外键的Django if语句

  18. 18

    两个外键字段,正好一个字段设置为一个值,而在带有MySQL数据库的Django模型中,另一个为null

  19. 19

    如何在Django模型中创建一个值为值或外键的字段?

  20. 20

    带内联的Django管理员,带有2个外键的1个模型指向2个不同模型

  21. 21

    如何使用SwampDragon创建带有外键的模型?

  22. 22

    如何在Django中模拟模型的外键模型?

  23. 23

    如何在Django模型中设置外键字段以不返回任何值?

  24. 24

    Django模型:汇总多个外键字段值的总和

  25. 25

    Django模型,循环外键

  26. 26

    Django多重外键模型

  27. 27

    Django中的选择性外键用法(也许带有limit_choices_to参数?)

  28. 28

    django中间模型,没有外键错误

  29. 29

    遍历抽象Django模型的所有与外键相关的子代

热门标签

归档