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)