Django在选择时形成了变化

时间:2011-07-12 09:22:48

标签: jquery css django forms

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

例如:

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

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

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

最好的方法是什么?一个简单的show / hide div使用jquery还是有更好的东西我应该做什么?

1 个答案:

答案 0 :(得分:2)

是的,你应该在客户端使用简单的show / hide和JQuery。 然后在服务器端,如果您还希望仅在选择其他内容时创建一些字段 required ,则需要在表单的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