Django - Форма - ForeignKey - Скрытый - Значение по умолчанию

У меня есть Hidden ForeignKey в форме обновления, который я хочу установить в значение по умолчанию 2 в моей html-форме, но я не могу заставить его работать.

forms.py

    eval_sent_state = forms.ModelChoiceField(widget=forms.HiddenInput(), initial=2,queryset=models.EvalUrlSentState.objects.all())

Вывод Html, который я получаю:

<input type="hidden" name="eval_sent_state" value="1" id="id_eval_sent_state">

из файла views.py

class ClassSchoolTeacherUpdateView(generic.UpdateView):
    model = models.ClassSchool
    form_class = forms.ClassSchoolTeacherForm
    pk_url_kwarg = "pk"

    def get_object(self, queryset=None):
        return models.ClassSchool.objects.get(class_random_key=self.kwargs.get("random"))

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['username'] = self.kwargs.get('username')
        context['random'] = self.kwargs.get('random')
        return context

Вы можете переопределить вашу форму, чтобы всегда устанавливать поле eval_sent_state в нужное вам значение в методе save, однако вам следует удалить поле из полей формы

class ClassSchoolTeacherForm(forms.ModelForm):

    class Meta:
        model = ClassSchool
        exclude = ['eval_sent_state']

    def save(self, *args, **kwargs):
        self.instance.eval_sent_state_id = 2
        return super().save(*args, **kwargs)
Вернуться на верх