页面重新加载后如何将文件保留在表单集中? .姜戈
How to keep files in the formset after page reload? . Django
花了几天时间想弄明白。也许这对你来说只是一个简单的问题,但是,无论如何......
我有一个内联表单集的表单视图,它接收和保存文件+主要模型表单本身中的几个文本字段。
问题是当表单+表单集填充了主表单的文本数据和表单集的文件时,如果主表单无效,页面将被重新加载并且表单集中的文件将丢失,我必须附加又是他们。我希望以一种方式修复这种情况,即重新呈现页面后的文件也会存在,但是不幸的是,我找不到解决方案。
我的看法如下:
# only the portion that in charge for the above-mentioned logic
# files are getting lost in form2. With form 1 everything is OK
def viewname(request):
if request.method == 'POST':
form1 = MainForm(request.POST, request.FILES, prefix="form1")
if form1.is_valid():
prim = form1.save(commit=False)
prim.author = request.user
form2 = inline_formset(request.POST, request.FILES,
prefix="form2", instance=prim)
else:
form2 = inline_formset(request.POST, request.FILES, prefix="form2")
context = {"form1": form1, "form2": form2}
return render(request, "create.html", context)
…
…
…
页面重新加载是由表单中的clean()方法引起的。它验证 2 个字段的相互数据,因此我无法将此验证移动到表单字段中的验证器。无论如何都需要清理数据来比较 2 个字段。
可以通过应用程序完成"file_resubmit"
花了几天时间想弄明白。也许这对你来说只是一个简单的问题,但是,无论如何......
我有一个内联表单集的表单视图,它接收和保存文件+主要模型表单本身中的几个文本字段。
问题是当表单+表单集填充了主表单的文本数据和表单集的文件时,如果主表单无效,页面将被重新加载并且表单集中的文件将丢失,我必须附加又是他们。我希望以一种方式修复这种情况,即重新呈现页面后的文件也会存在,但是不幸的是,我找不到解决方案。
我的看法如下:
# only the portion that in charge for the above-mentioned logic
# files are getting lost in form2. With form 1 everything is OK
def viewname(request):
if request.method == 'POST':
form1 = MainForm(request.POST, request.FILES, prefix="form1")
if form1.is_valid():
prim = form1.save(commit=False)
prim.author = request.user
form2 = inline_formset(request.POST, request.FILES,
prefix="form2", instance=prim)
else:
form2 = inline_formset(request.POST, request.FILES, prefix="form2")
context = {"form1": form1, "form2": form2}
return render(request, "create.html", context)
…
…
…
页面重新加载是由表单中的clean()方法引起的。它验证 2 个字段的相互数据,因此我无法将此验证移动到表单字段中的验证器。无论如何都需要清理数据来比较 2 个字段。
可以通过应用程序完成"file_resubmit"