определение значения поля в представлении перед проверкой формы - PullRequest
1 голос
/ 24 октября 2011

У меня есть форма с полем «статус», которое будет установлено представлением в зависимости от значения некоторых полей моей формы

возможно ли сделать это ДО формы.is_valid () (иначе форма не будет действительной)?

единственный способ, которым я могу думать, это позволить пустому полю «статус», но это не выглядит хорошим дизайном

определение метода clean (), который устанавливает эти поля, является лучшим решением?

Ответы [ 2 ]

2 голосов
/ 24 октября 2011

Если поле состояния не предназначено для установки пользователем, заполняющим форму, его, вероятно, вообще не должно быть в форме.

Если это значение позже будет использовано при создании / обновлении экземпляра модели или чего-то еще, было бы лучше просто включить значение, определенное вашим представлением, в метод сохранения формы, например form.save(status=my_status) (если этоModelForm) или когда вы создаете экземпляр своей модели, иначе.

Если пользователь вводит статус, то вы можете просто использовать пользовательский метод clean(), который обеспечивает приемлемое значение.

0 голосов
/ 24 октября 2011

Затем вы должны инициировать форму с этим значением состояния, а затем скрыть поле.

class StatusForm(forms.ModelForm):
    def __init__(self, *arg, **kwargs):
        super(StatusForm, self).__init__(*arg, **kwargs)
        # set needed value here and hide field
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...