所以我有这两个模型,分别是食谱和膳食。例如,我想获得鸡肉和意大利面食配料的鸡肉意大利面餐。我该怎么办?
class Recipe(models.Model):
mealId = models.ForeignKey('meal.Meal',on_delete=models.CASCADE,related_name='meal')
ingredientId=models.ManyToManyField('ingredient.Ingredient')
amountId=models.ManyToManyField('amount.Amount')
class Meal(models.Model):
mealName=models.CharField(max_length=100,verbose_name="Meal name")
desc=RichTextField()
img=models.ImageField(blank=True)
categoryId=models.ManyToManyField('category.Category')
答案 0 :(得分:1)
如果您想通过成分模型的名称字段来搜索成分,例如“鸡肉”,“面食”和“鸡肉意大利面食谱”可以包含其他成分,例如:“鸡肉”,“意大利面”,“盐”,“酱”。然后,您可以按照以下方式进行操作:
# put here import your models
names_for_search = [
"chicken",
"pasta"
]
queryset = Recipe.objects.all()
for name in names_for_search:
queryset = queryset.filter(ingredientId__name__in=[name])
result_reciple = queryset.first()
if result_reciple is not None:
result_meal = result_reciple.mealId