Django,如何在3个表之间进行验证?

时间:2017-04-13 16:54:52

标签: python django django-models

我有3个模特。

class Thing (model.Models):
    name = models.CharField(max_length = 222)
    ...

class UserProfile(model.Models):
    infos

class Rate(models.Model):
    thing = models.ForeignKey(Thing)
    user = models.ForeignKey(User)
    rate = models.IntegerField()

如何进行验证?我希望一个用户对一件事有一个评级。

1 个答案:

答案 0 :(得分:1)

如果您希望用户对一件事具有一个评级,那么对于用户和事物的组合,您需要对Rate模型使用唯一约束。您可以使用unique_together

来定义此内容
class Rate(models.Model):
    thing = models.ForeignKey(Thing)
    user = models.ForeignKey(User)
    rate = models.IntegerField()

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