我在 Django 中有以下设置。由 CharField 验证的文本输入和用于图像上传的 FileField。当字段为空时,期望的响应应该是表单上的原始数据存在并且用户需要做的就是填写缺失的数据。我列出了可能需要验证的两种情况以及应用程序如何响应的当前状态:
- 文本存在,但图像被遗忘。重新加载后的结果:原来在帖子中的文本仍然存在,用户所要做的就是上传文件。这可以按需要工作。优秀的
- 文字被遗忘,但图像存在。重新加载后的结果:图像不再存在,需要用户重新上传,这是不可取的。
验证后如何保留文件数据?
视图.py
def signin(request, template="signin.html"):
c['form'] = SignInForm()
if request.method == 'POST':
c['form'] = SignInForm(request.POST, request.FILES)
if c['form'].is_valid():
#TODO: Commit data
return redirect("somwhere_else.html")
return render(request, template, c)
表格.py
class SignInForm(forms.Form):
name = forms.CharField(max_length=50,required=True)
photo_input = forms.FileField(required=True)