首页 > 解决方案 > Django Form 没有引发 ValidationError

问题描述

我有一个 Django 表单,我尝试根据我比较的两个值进行验证。

def clean(self):
    cleaned_data = super().clean()
    if cleaned_data['preferred_communication'] == 'email' and cleaned_data['email']:
        pass
    else:
        print('error error error')
        raise ValidationError(_('Please type in your email address, if you want to be notified.'))

我在命令行中看到了打印输出,所以逻辑有效。仍然 form.is_valid 似乎是 True。

标签: djangodjango-forms

解决方案


在这种特殊情况下,form.is_valid() 有效,但视图中没有异常。

if form.is_valid() 中总是有一个 ELSE。


推荐阅读