Django用户ForeignKey和唯一对象名

时间:2017-04-24 09:19:04

标签: python django django-models django-forms django-views

class User:
    username = (unique=True)

class Object:
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    name = ()

我如何拥有多个具有相同名称的对象,但每个用户只能拥有一个唯一的对象名称。

例如:

user1只能有一个唯一的对象名称“dog”, user2也只能有一个唯一的对象名称“dog”, 因此可以有多个具有相同名称“dog”的对象,但每个用户只能通过ForeignKey拥有一个名为“dog”的对象。如果user1尝试创建另一个名为“dog”的对象,则提出类似表单验证错误的内容。

1 个答案:

答案 0 :(得分:4)

您可以使用unique_together选项添加数据库约束。

class MyModel(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    name = models.CharField(max_length=30)

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