【问题标题】:Django CreateView with a ManyToMany field?带有 ManyToMany 字段的 Django CreateView?
【发布时间】:2020-02-18 17:27:09
【问题描述】:

我这几天一直在做一些事情,我在这里看到了一些类似的帖子,但我仍然无法获得它!

我会发布一个小sn-p。

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

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

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

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

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

任何帮助将不胜感激!

【问题讨论】:

    标签: python django django-models django-forms django-views


    【解决方案1】:

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

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

    建议任何有关创建视图的 sn-p 以进一步了解问题。

    【讨论】:

      【解决方案2】:

      保存配方后可以保存配料。

      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    
      

      【讨论】:

        猜你喜欢
        • 2017-07-11
        • 2015-05-15
        • 1970-01-01
        • 2019-10-12
        • 1970-01-01
        • 2011-05-08
        • 1970-01-01
        • 2018-07-23
        • 2017-03-21
        相关资源
        最近更新 更多