用户独有的条目

时间:2017-05-18 15:31:34

标签: django django-models

我有一个跟踪网站的模型,并希望它对该用户来说是独一无二的。例如,如果该网站是google.com,则用户只能输入一次,但仍允许多个用户进入google.com。为了让你更好地了解我的models.py:

class Site(models.Model):
    url = models.CharField(max_length=500)
    tag = models.ForeignKey(Tag)
    user = models.ForeignKey('customauth.UserProfile')

有没有让url字段对用户唯一?

1 个答案:

答案 0 :(得分:2)

您可以使用unique_together constraint

class Site(models.Model):
    url = models.CharField(max_length=500)
    tag = models.ForeignKey(Tag)
    user = models.ForeignKey('customauth.UserProfile')

    class Meta:
        unique_together = ('url', 'user')

此选项允许用户创建唯一的URL,否则django会引发错误。单个用户无法使用相同的URL创建两个对象。

违反约束时在模型验证期间引发的ValidationError具有unique_together错误代码。