如何在另一个表Django中引用外键的字段

时间:2018-01-26 00:44:45

标签: python mysql django

文档
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,因为我在那里使用?因为我也需要将这些字段设置为主键。

1 个答案:

答案 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 = ...