@s1vemod

Как определить невидимое поле в Django?

День добрый. Подскажите, как добавить в форму скрытое поле с определённым значением?
Мне нужно в форме хранить title продукта, который сейчас открыт.

Нашёл такое решение:
title = forms.ModelMultipleChoiceField(
        queryset=Room.objects.all())

    def __init__(self, *args, room_slug=None, **kwargs):
        super(forms.Form, self).__init__(*args, **kwargs)
        if room_slug is not None:
            self.fields['title'].queryset = Room.objects.filter(
                slug=room_slug
            )


Но когда форма делает POST-запрос, данного поля там нет.

Сделал так, но сомневаюсь, насколько это хорошее решение?
title = forms.CharField(widget=forms.HiddenInput())

    def __init__(self, *args, room_slug=None, **kwargs):
        super(forms.Form, self).__init__(*args, **kwargs)
        if room_slug is not None:
            self.fields['title'].initial = Room.objects.filter(
                slug=room_slug
            )[0] # 'title': ['<QuerySet [<Room: test room>]>']
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы