首先是代码。ModelForm(im1 和 im2 是 models.ImageField):
class TestForm(forms.ModelForm):
checkme = forms.BooleanField(required=True)
class Meta:
model = UserProfile
fields = ('im1', 'im2')
风景:
def test(request):
profile = request.user.get_profile()
form = TestForm(instance=profile)
if request.method == "POST":
form = TestForm(request.POST, request.FILES, instance=profile)
if form.is_valid():
form.save()
return render(request, 'test.html', {'form':form})
模板:
<html>
<head>
<title>Test</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="submit" />
</form>
</body>
</html>
问题:
如果 im1 包含有效图像,并且我选中了它旁边的清除复选框,但没有选中 checkme 并提交,则表单返回一个错误,指出需要 checkme。尽管表单返回错误,但看起来好像 im1 已被清除。实际上它没有,因为如果我重新加载表单 im1 显示备份其文件并清除复选框。
我的问题是我该如何解决这个问题?这是我正在做的事情还是与 django 有关?