为什么django表单集内容在发布后不更新?
我正在使用表单集向用户显示表单并更新数据库。成功后,我希望立即重新显示带有更新(添加/删除)数据和额外空表单的表单集 数据库更新已正确完成。如果填写了额外的表单,它将显示回来。但是已删除的表单(行)在提交后仍会显示,如果额外表单已填充数据,则在提交后不会提供新的额外表单 这是我的为什么django表单集内容在发布后不更新?,django,forms,Django,Forms,我正在使用表单集向用户显示表单并更新数据库。成功后,我希望立即重新显示带有更新(添加/删除)数据和额外空表单的表单集 数据库更新已正确完成。如果填写了额外的表单,它将显示回来。但是已删除的表单(行)在提交后仍会显示,如果额外表单已填充数据,则在提交后不会提供新的额外表单 这是我的视图.py代码: @login_required def user_setting(request): user = request.user OnlineFormSet = modelformset_
视图.py
代码:
@login_required
def user_setting(request):
user = request.user
OnlineFormSet = modelformset_factory(Online,
can_delete=True,
extra=1)
onlines = Online.objects.filter(user=user).order_by('start')
if request.method == 'POST':
formset = OnlineFormSet(request.POST, queryset=onlines)
if formset.is_valid():
for q in formset.save(commit=False):
q.user=user
q.save()
else:
formset = OnlineFormSet(queryset=onlines)
context['online_formset'] = formset
return response(request, context)
我还尝试在if request.method==“POST”
块末尾使用重定向,但没有成功
有没有可能有一个全新的表单集,其中包含由于发布而刚刚提交/删除的所有数据?以下是我如何解决这个问题的 首先,模板中有一个错误,我将
action=“
更改为action=“.”“
这样,我总是在更新后立即得到一个新的表单集
<form id="online" method="post" action=".">
{% csrf_token %}
{{ online_formset }}
<input id="online-submit" type="submit" value="Submit" />
</form>
@login_required
def user_setting(request):
user = request.user
OnlineFormSet = modelformset_factory(Online, can_delete=True,extra=1)
onlines = Online.objects.filter(user=user).order_by('start')
if request.method == 'POST':
formset = OnlineFormSet(request.POST, queryset=Online.objects.all())
if formset.is_valid():
for q in formset.save(commit=False):
q.user=user
q.save()
formset = OnlineFormSet(queryset=onlines)
context['online_formset'] = formset
return response(request, context)