建立多对多关系

时间:2019-01-15 20:56:29

标签: python django django-models many-to-many

我正在使用Django应用程序功能,在该功能中,餐厅可以为自己的餐点添加额外的食物。

因此,我设置了一个具有两个属性的extra模型(extra_n:Extra name和extra_price:Extra price)

然后我将此模型与meal模型关联。

models.py

class Extra(models.Model):
    extra_n = models.CharField(max_length=200)
    extra_price = models.IntegerField(default=0)

    def __str__(self):
        return self.extra_n

class Meal(models.Model):  
    restaurant = models.ForeignKey(Restaurant, on_delete=models.PROTECT)
    category = models.ForeignKey(MealCategory, on_delete=models.PROTECT)
    name = models.CharField(max_length=500)
    short_description = models.CharField(max_length=500)
    image = models.ImageField(upload_to='meal_images/', blank=False)
    price = models.IntegerField(default=0)
    extras = models.ManyToManyField(Extra)

    def __str__(self):
       return self.name 

我很困惑。目标是为每餐提供额外的食物。这些额外费用将只与一顿饭有关。

在检查django管理员时,我发现每添加一个额外的东西,它就会与所有餐点相关。

任何人都可以帮助解决问题吗?

0 个答案:

没有答案