对于为这个特定用例设计Django模型的“正确方法”,我有点困惑。
我有名为Book,User,Rating的模型。我正在设计一款让用户评价书籍的应用程序。
评级与用户有多对一的关系,与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)
...
通过这种设计,我无法弄清楚如何执行用户只能对每本书评分一次的规则。我也不确定这是否是为这个用例设计模型的正确方法。因此,如果我能在正确的方向上获得一些指示,那么可以帮助我在这个早期阶段避免设计缺陷。
提前致谢!
答案 0 :(得分:5)
您可以在评分模型中使用unique_together Meta选项:https://docs.djangoproject.com/en/1.3/ref/models/options/#unique-together