Приложение имеет поле категории, которое может быть установлено в сеансе и может не совпадать. Если это так, я не хочу видеть, что поле в форме просто имеет его как скрытое поле со значением, равным значению в запросе. Если он не установлен, я хочу отобразить выпадающий список.Изменить поля формы на основе запроса
Я установил форму, чтобы включить раскрывающееся меню, которое является значением по умолчанию для этого поля, и мой вопрос: где лучше всего изменить виджет на скрытый, имея в виду, что мне нужен запрос, чтобы я мог " t сделать это в формах init, что является очевидным местом.
Пробовал этот подход, но поле остается видимым:
class DocForm(forms.ModelForm):
class Meta:
model = Document
fields = __all__
widgets = {"creator": forms.HiddenInput(),}
def __init__(self, *args, **kwargs):
#cant do it here because don't have request
class DocAddView(CreateView):
form_class = DocForm
def get_form_class(self):
form_class = super(DocAddView, self).get_form_class()
form_class.Meta.widgets['category'] = forms.HiddenInput()
return form_class
Perfect. Благодарю. – PhoebeB