gpt4 book ai didi

python - django 唯一对象(不是唯一字段)?

转载 作者:行者123 更新时间:2023-11-29 12:39:43 25 4
gpt4 key购买 nike

如何制作一个唯一的对象(每个字段不是唯一的)

例如:

名称:本田

类别:汽车

成功

名称:本田

类别:自行车

成功

名称:本田

类别:自行车

失败,因为所有字段对另一个对象具有相同的值

如果我在现场使用 unique,第二种情况将失败,因为 honda (name) 已经创建

我的代码:

class Category(models.Model):
name = models.CharField(max_length=127,unique=True)

def __str__(self):
return self.name


class Brand(models.Model):
name = models.CharField(max_length=127,unique=True)
category = models.ForeignKey(Category,on_delete=models.CASCADE)

def __str__(self):
return self.name

最佳答案

Django 提供了一个名为 unique together 的 Meta 选项,它似乎可以满足这个用例:

class Brand(models.Model):
name = models.CharField(max_length=127)
category = models.ForeignKey(Category, on_delete=models.CASCADE)

class Meta:
unique_together = [[“name”, “category”]]

Django 文档指出这可能已被弃用并推荐功能更齐全的 UniqueConstraint 元选项

class Meta:
constraints = [
UniqueConstraint(fields=[“name”,”category”], name=“unique_object”)
]

关于python - django 唯一对象(不是唯一字段)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56998966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com