文档
models.py
ERD-Restaurants
python3.6.4,django 2.0
你好django朋友,我需要一些帮助。
这是model.py中的评级类(评级表)
class Rating(models.Model):
business = models.? r1
dish = models.? r2
user = models.ForeignKey(User, on_delete=models.CASCADE, primary_key=True)
rating = models.IntegerField()
comment = models.TextField()
如何使用Price.restaurant引用r1,使用Price.dish引用r2?并将这两个字段设置为主键,以便3个字段(business,dish和user)可以组成一个复合键。
有效使用参数,在ForeignKey字段中使用primary_key = True,因为我在那里使用?因为我也需要将这些字段设置为主键。
答案 0 :(得分:0)
Django ORM不支持多列/复合主键。您需要使用代理键。请参阅:https://code.djangoproject.com/wiki/MultipleColumnPrimaryKeys
可能的解决方案:
class Rating(models.Model):
class Meta:
unique_together=('business','dish','user')
business = models.ForeignKey(Restaurant...)
dish = models.ForeignKey(Dish...)
user = models.ForeignKey(User...)
comment = ...