我知道有界表单上的is_valid()
检查是否输入了所有必需的数据。这不是我想要的。我想检查表单上是否填写了任何字段。
有什么想法吗?
详细说明:
我想让用户选择完全不填写表单。但是,如果他们试图填充它(即:从字段的初始值更改字段中的值,通常为空值),我想验证它。
视图如下:
def get_opinion(request):
if request.method == 'POST':
f = OpinionForm(request.POST)
if form_is_blank(f):
return HttpResponseRedirect(reverse('thank_you_anyway'))
elif f.is_valid():
#Process here
return HttpResponseRedirect(reverse('thanks_for_participating'))
else:
initial = {'weekday': date.today().strftime('%A')}
f = OpinionForm(initial=initial)
return render_to_response(
'get_opinion.html',
{'form': f,},
RequestContext(request)
)
我想要的是form_is_blank()
部分。
您应该为表单中的所有字段设置required=False,并重写
clean
方法来执行自定义验证。有关详细信息,请参见the current documentation。要使此功能适用于实际<;表单>;标记中使用的表单子集,还需要定义
因此,当提示用户修复验证错误时,仅当某些值不为空(或默认值)时,才会显示要验证的表单中的错误。
我想我得回答我自己的问题。
显然,这里有一个未记录的
Form
函数:has_changed()
所以这可以很好地替代
form_is_blank()
(当然是还原的)。相关问题 更多 >
编程相关推荐