gpt4 book ai didi

django modelformset_factory - 管理表单数据丢失

转载 作者:行者123 更新时间:2023-12-02 06:50:47 25 4
gpt4 key购买 nike

我仍在与表单集作斗争,我无法真正理解为什么会出现此错误:

u'ManagementForm 数据丢失或已被篡改

这是我的代码:请指出我的错误并帮助我解决这个问题。

@csrf_protect
@transaction.commit_on_success
def signup(request):
form = NewUserCreationForm()
doc_form = NewDocRegisterForm()

SpecialityLicensesFormSet = modelformset_factory(SpecialityLicenses, extra=1, exclude = ('user'))
formset = SpecialityLicensesFormSet(queryset=SpecialityLicenses.objects.none())

if request.method == "POST":

form = NewUserCreationForm(request.POST or None)
doc_form = NewDocRegisterForm(request.POST or None)
formset = SpecialityLicensesFormSet(request.POST or None)


if form.is_valid() and doc_form.is_valid() and formset.is_valid():

user = form.save()

doc = doc_form.save(commit=False)
doc.user = user
doc.save()



print formset
fset = formset.save(commit=False)

for n in fset:
n.user = user
n.save()

return HttpResponse("Uzytkownik utowrzony")

return render_to_response("userena/signup_new.html", {'form': form,
'doc_form': doc_form,
'spec_form': formset,},
context_instance=RequestContex

t(request))

模板代码:

<form action="/en/accounts/doc_register/" method="post">{% csrf_token %}
{% for field in form %}


<div>
{% if field.errors %}
{{ field.errors|striptags }} |
{% endif %}

{{field.label}} | {{ field}}
</div>


{% endfor %}

<hr>


{% for f in doc_form %}
<div>
{% if f.errors %}
{{f.errors|striptags}} |
{% endif %}

{{f.label}} : {{ f }}
</div>
{% endfor %}
<hr>

{{ spec_form.management_form }}
{{ spec_form }}

<hr>
<input type="submit" value="Submit"/>
</form>
{% endblock %}

最佳答案

如果您执行{{ formset }},则无需执行{{ formset.management_form }},只需执行

{{ formset.management_form }}
{% for form in formset %}
{{ form }}
{% endfor %}

尝试从模板中删除 {{ spec_form.management_form }} 位。看the third example

关于django modelformset_factory - 管理表单数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10303273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com