我正在尝试检查表单中的图像字段是否有效,如果不是,则将其重置为“无”。我在views.py中的代码看起来像这样。我已经对这两行解释了我的意图,但没有效/工作。
def edit_user_profile(request):
if request.method == 'POST':
form = EditUserProfileForm(request.POST, request.FILES, instance=request.user.userprofile)
if form.is_valid():
form.save()
return redirect('/accounts/profile/websitesetup2/')
else:
if form.image.is_valid: #not valid code (problem a)
pass
else:
form.image = None #not valid code (problem b)
args = {'form': form}
return render(request, 'accounts/page1.html', args)
else:
form = EditUserProfileForm(instance=request.user.userprofile)
args = {'form': form}
return render(request, 'accounts/page1.html', args)
我似乎无法弄清楚如何:
a)检查图像区域是否有效
b)将图像字段重置为无
我想这样做是为了在重新渲染表单时抛出错误的图像
如果您有任何想法,我们将不胜感激。
谢谢!
答案 0 :(得分:0)
如果图片字段有效,则应该在cleaned_data
中,因此您可以尝试访问该图片,如果图片字段失败,请从图片错误中删除图片字段。这将再次呈现您的模板,但不会在图像字段呈现错误消息。这真的是你想要的吗?
if form.is_valid():
form.save()
return redirect('/accounts/profile/websitesetup2/')
else:
try:
# if we can access image in cleaned_data, it means it is valid
form.cleaned_data['image']
except KeyError:
# if we get a KeyError, it means the image is not valid
del form._errors['image']
finally:
args = {'form': form}
return render(request, 'accounts/page1.html', args)