在没有内联表单集的情况下保存多个 - Django 2.1

问题描述 投票:0回答:1

Django中最好的程序是什么,在不使用内联表单集的情况下保存与另一个模型相关的表单?

问题设置:

模型地址与模型用户的外键相关联

每个用户可以有多个地址。我想为用户添加新地址。

views.朋友

在AddAddress类(扩展CreateView)中,form.errors有错误

{'user':['此字段是必填项。']}

用户pk位于url /address/add/<int:pk>

django one-to-many
1个回答
1
投票

首先,正如Daniel Roseman指出的那样,必须确保表单的字段列表中不存在“user”字段。这将确保表单有效。

覆盖视图类中的form_valid方法以保存表单而不提交,然后将所需用户设置为结果实例,然后直接在其上调用保存。

def form_valid(self, form):    
    address_obj = form.save(False)
    address_obj.user = User.objects.get(pk=self.kwargs['pk'])
    return HttpResponseRedirect(self.get_success_url())
© www.soinside.com 2019 - 2024. All rights reserved.