【问题标题】:django form validation: field error not displayeddjango 表单验证:未显示字段错误
【发布时间】:2021-01-01 11:03:01
【问题描述】:

我迷失了表单验证和显示错误消息的方式

我的模板中有一个“自定义”表单显示(逐个字段显示)

我需要在 2 个字段之间进行验证,所以我应该使用 clean 方法 如果勾选复选框,文本输入不能为空 我想将错误消息绑定到我的文本字段,但没有显示错误消息...

forms.py

class CreateForm(forms.Form):

    def __init__(self, request, *args, **kwargs):
        super(CreateForm, self).__init__(*args, **kwargs)
        self.fields["bra_00A_act"] = forms.BooleanField(label = "", required = False)
        self.fields["bra_00A_lib"] = forms.CharField(label = "", required = False)

    def clean(self):
       cleaned_data = super(CreateForm, self).clean()
       if cleaned_data["bra_00A_act"] and cleaned_data["bra_00A_lib"] == "":
           self.add_error('bra_00A_lib', "custom error message")
           raise forms.ValidationError('error')
       return cleaned_data


模板html

<form id="randomization_settings_form" method="POST" class="post-form">
        {% csrf_token %}
        <input id="new_parameters" type="hidden" name="parameters" value="">
        {{ form.non_field_errors }}
        <table id="table_parametrage" class="table table-hover">
            <thead>
                <tr>
                    <th>Bras A</th>
                    <th>-----</th>
                </tr>
                <tr>
                    <td colspan="2">
                        <div class="fieldWrapper">
                            {{ form.bra_00A_act.errors }}
                            {{ form.bra_00A_act }}
                            {{ form.bra_00A_lib.errors }}
                            {{ form.bra_00A_lib }}
                        </div>
                    </td>

                </tr>
            </thead>
        </table>
...
</form>

【问题讨论】:

    标签: python django forms validation


    【解决方案1】:
    <script type="text/javascript">
    $(document).ready(function () {
        $("form").validate();
        $("form").submit(function (e) {
            if ($("form").valid()) {
            }
        });
    })
    

    【讨论】:

    • 我发现了我的错误:在我看来,我的返回重定向到另一个页面,即使验证是错误的......
    • 现在验证了吗
    猜你喜欢
    • 2014-06-12
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 2018-04-19
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    相关资源
    最近更新 更多