У меня есть модель, для которой я хочу передать некоторые аргументы в форму.модель:
class CandidateNote(models.Model):
candidate = models.ForeignKey(CandProfile, on_delete=models.CASCADE, related_name='candidatenotes_cand')
note_by = models.ForeignKey(BaseUser, null=True, on_delete=models.SET_NULL, related_name='candidatenotes_user')
job_note = models.TextField(max_length=3000)
date_added = models.DateTimeField(auto_now_add=True)
Как видите, модель имеет 2 внешних ключа (кандидат и note_by)
. В форме я буду отображать только поле 'job_note
'.Поля 'candidate
' и 'note_by
' будут заполнены представлением
class CreateNoteView(CreateView):
template_name = 'candidates/create_note.html'
form_class = CreateNoteForm
success_url = reverse_lazy('staff_main')
Мне сказали, что все в порядке, использовать Generic CreateView
, но мне придется'subclass
' метод 'get_form()
' и отметьте следующее:
form = CreateNoteForm(...);
form.instance.candidate = self.object;
form.instance.note_by = self.request.user;
form.save()
Я посмотрел на метод 'get_form()
' по умолчанию в классе CreateView
, и он имеет:
def get_form(self, form_class=None):
"""Return an instance of the form to be used in this view."""
if form_class is None:
form_class = self.get_form_class()
return form_class(**self.get_form_kwargs())
Как, черт возьми, я 'subclass
' и привязываю
form = CreateNoteForm(...);
form.instance.candidate = self.object;
form.instance.note_by = self.request.user;
form.save()
к методу 'get_form
', и что я помещаю в ... частьиз:
form = CreateNoteForm(...);
и должен ли я действительно form.save()
на данный момент, на мой взгляд.