首页 > 解决方案 > 设置多对多关系

问题描述

我正在开发一个Django应用程序功能,餐厅可以在其中添加额外的餐点。

所以我设置了一个extra具有两个属性的模型(extra_n:额外名称和 extra_price:额外价格)

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

模型.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 管理员时,我发现每当我添加额外的东西时,它都会与所有餐点相关联。

任何人都可以帮助找出问题吗?

标签: pythondjangodjango-modelsmany-to-many

解决方案


推荐阅读