我有一个典型的models.ModelForm
,只有一个字段:FileField
。但是,当用户使用表单上载文件并重新加载页面时,不会列出该文件。用户必须手动重新加载页面才能显示为“当前文件”。
这是我的观看代码:
submission = Submission.objects.filter(user=request.user, problem=problem).first()
if request.POST:
submission_form = SubmissionForm(request.POST, request.FILES, instance=submission)
if submission_form.is_valid():
submission_form.save()
else:
submission_form = SubmissionForm(instance=submission)
return render_to_response('view-problem.html',
dictionary={'problem': problem, 'submission_form': submission_form},
context_instance=RequestContext(request))
我的猜测是,在加载视图时文件仍在处理中,因此用户不会立即看到它。我该如何解决这个问题?
答案 0 :(得分:0)
您必须在保存旧表单后创建新表单。ModelForm.save()
返回模型实例,您可以使用此实例初始化新的ModelForm。
代码:
if request.POST:
submission_form = SubmissionForm(request.POST, request.FILES, instance=submission)
if submission_form.is_valid():
submission = submission_form.save()
submission_form = SubmissionForm(instance=submission)