【问题标题】:Django form changes on selectionDjango 表单在选择时更改
【发布时间】:2011-10-03 11:14:05
【问题描述】:

我有一个大的 django 表单。它有很多数据取决于所选择的字段。

例如:

你有车吗?是/否下拉框。

如果是,我想显示附加字段 make/model/year/cc 等

如果不是,我想把它们隐藏起来。

最好的方法是什么?使用 jquery 的简单显示/隐藏 div 还是我应该做的更好?

【问题讨论】:

    标签: jquery css django forms


    【解决方案1】:

    是的,您应该在客户端使用带有 JQuery 的简单显示/隐藏。 然后在服务器端,您需要在表单的 clean 方法中进行条件验证,如果您还希望某些字段必填仅在选择其他内容时。

    例如:

    class MyForm(Form):
        ...
        def clean(self):
            cleaned_data = self.cleaned_data
            has_car_required_fields = ['foo', 'bar', 'baz']
            if cleaned_data.has_key('has_car') and cleaned_data['has_car']:
                for field_name in has_car_required_fields:
                    if not cleaned_data.has_key(field_name) or not cleaned_data[field_name]:
                        self._errors[field_name] = ErrorList([_(u'This field is required')])
    
             return cleaned_data
    

    【讨论】:

    • 是的,这就是我打算做的事情。看起来我的想法是正确的(改变)干杯!
    • 我想知道这个答案是否仍然与 Django 3.1 相关,或者有其他方法可以做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 2011-10-31
    • 2014-08-10
    • 2014-12-10
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    相关资源
    最近更新 更多