Python Django:如何检查用户是否将所有字段留空(或初始值)?

Python Django:如何检查用户是否将所有字段留空(或初始值)?,python,django,django-forms,Python,Django,Django Forms,我知道是否有效()。这不是我想要的。我想检查一下表单上是否填写了任何字段 有什么想法吗 详细说明: 我想让用户选择根本不填写表单。但是,如果他们试图填充它(即:将字段中的值从初始值更改为空值),我想验证它 视图应该是这样的: def get_opinion(request): if request.method == 'POST': f = OpinionForm(request.POST) if form_is_blank(f):

我知道
是否有效()。这不是我想要的。我想检查一下表单上是否填写了任何字段

有什么想法吗

详细说明:

我想让用户选择根本不填写表单。但是,如果他们试图填充它(即:将字段中的值从初始值更改为空值),我想验证它

视图应该是这样的:

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)
    )

我想要的是
表单是空白的()

如果将
required=True
放入表单字段或模型
blank=False
中,则
有效()
应返回False。

应为表单中的所有字段设置required=False,并覆盖
clean
方法以进行自定义验证。更多信息请参见。

我想我必须回答我自己的问题

显然,有一个未记录的
表单
函数:
已更改()


因此,这将很好地替代
表单\u为空()
(当然已还原)。

要使此功能适用于实际标记中使用的表单子集,还需要定义

class YourForm(forms.ModelForm):
    def full_clean(self):
        if not self.has_changed():
            self._errors = ErrorDict()
            return

        return super(YourForm, self).full_clean()

因此,当提示用户修复验证错误时,它不会显示表单中的错误,只有当某些值不是空的(或默认值)时,才需要验证这些表单。

使用自定义表单集并将其传递给它。

对此,您应该添加更多不同的用例。如果您只关心至少填写一个字段,那么这听起来像是在客户端使用javascript时应该发生的事情。@Matt:谢谢您的建议。我用一些代码详细说明了。如果表单不是空的,你想保存它怎么办?
has_change
方法在这方面没有帮助,是吗?为什么要复制
f=MyForm({})
案例?对于我的特定用例,我在视图中有多个表单。如果用户开始填写其中一个表单,那么我希望某些字段是必需的。
class YourForm(forms.ModelForm):
    def full_clean(self):
        if not self.has_changed():
            self._errors = ErrorDict()
            return

        return super(YourForm, self).full_clean()