我有一个跟踪网站的模型,并希望它对该用户来说是独一无二的。例如,如果该网站是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字段对用户唯一?
答案 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错误代码。