我有以下问题: 我需要获取配方的配料数量。
这是我的模型。py:
class Ingredient(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Recipe(models.Model):
name = models.CharField(max_length=100)
ingredients = models.ManyToManyField(Ingredient, through='RecipeHasIngredients')
def __str__(self):
return self.name
class RecipeHasIngredients(models.Model):
ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE)
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
quantity = models.IntegerField()
def __str__(self):
return str(self.recipe)
答案 0 :(得分:2)
有两种解决方案:
直接查询RecipeHasIngredients
:
RecipeHasIngredients.objects.filter(recipe = recipe)
使用方式
recipe_instance.ingredients.through.objects.all()
在两种情况下,您都会获得给定食谱的RecipeHasIngredients
个实例的列表