Форма Джанго меняется при выборе - PullRequest
1 голос
/ 12 июля 2011

У меня большая форма Джанго. В нем много данных, которые зависят от выбранного поля.

Например:

У тебя есть машина? ДА / НЕТ выпадающий список.

Если да, я хочу показать дополнительные поля make / model / year / cc и т. Д. И т. Д.

Если нет, я хочу скрыть их.

Каков наилучший способ для этого? Простой показ / скрыть div с использованием jquery или есть что-то лучшее, что я должен делать?

1 Ответ

2 голосов
/ 12 июля 2011

Да, вы должны использовать простое отображение / скрытие с 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...