为这个用例设计 Django 模型的"正确方法"是什么?



我有点困惑,对于这个特殊的用例,设计Django模型的"正确方法"是什么。

我的模型分别是Book, User, Rating。我在设计一个让用户给书打分的应用。

Rating与user有多对一关系,与Book有多对一关系。

class User(models.Model):
    name = models.CharField(max_length=30)
class Book(models.Model):
    name = models.CharField(max_length=30)
class Rating(models.Model):
    user = models.ForeignKey(User,related_name=ratings)
    book = models.ForeignKey(Book,related_name=ratings)
    ...

对于这种设计,我不知道如何执行用户只能对每本书进行一次评分的规则。我也不确定这是否是为这个用例设计模型的正确方法。因此,如果我能在正确的方向上得到一些指导,它可能会帮助我在早期阶段避免设计缺陷。

提前感谢!

您可以在您的评级模型上使用unique_together Meta选项:https://docs.djangoproject.com/en/1.3/ref/models/options/#unique-together

相关内容

最新更新