0

我已经做了几天的工作,我在这里看到了一些类似的帖子,但我仍然无法获得它!

我将发布一个小片段。

我有一个食谱模型,有很多字段,但我会发布我所指的那个。

    ingredients = models.ManyToManyField('recipes.Ingredient', related_name='in_recipes')

然后我Ingredient当然有一个模型,带有名称、描述等。

我希望能够拥有一个 CreateView,我可以在其中将任意数量的成分添加到单个食谱中。

我只能列出我的数据库中已经存在的成分。我正在寻找一个包含成分表和字段的单一配方表。

任何帮助将不胜感激!

4

2 回答 2

0

You can save the ingredients after saving the recipe.

class RecipeCreateView(CreateView):

    def save_ingredients(self, recipe):
        ingredients_names = self.request.POST.getlist('ingredients_names')
        for name in ingredients_names:
            ....

    def post(self, request, *args, **kwargs):
        response = super().post(request, *args, **kwargs)
        self.save_ingredients(self.object)
        return response    
于 2019-10-22T14:47:22.587 回答
0

成分 = models.ManyToManyField(成分,related_name='in_recipes')

确保仅将多对多关系放在成分模型或食谱模型中!,不在这两种型号中!

并且建议使用有关创建视图的任何片段来更多地了解问题。

于 2019-10-22T14:35:48.263 回答