Такая конструкция, поддскажите, пожалуйста, является верным направлением?
В views.py в функции доьавления добавил:
if self.request.method in ('POST', 'PUT'):
kwargs.update({
'data': self.request.POST,
'files': self.request.FILES,
})
т.е сейчас моя функция приняла вид:
class UpdateAndAdd(FormView):
model = Mymodel
form_class = MymodelForm
decorators = [login_required]
template_name = 'schedules/schedules_dop_teacher_edit_add.html'
success_url = reverse_lazy('schedules-dopteacher-list')
def form_valid(self, form):
self.pk = self.kwargs.get("pk")
if self.pk == None:
Mymodel.objects.create(**form.cleaned_data)
#form.save()
else:
ScheduleDopTeacher.objects.filter(pk=self.pk).update(**form.cleaned_data)
form.save()
return redirect(self.get_success_url())
def get_form_kwargs(self):
self.pk = self.kwargs.get("pk")
if not self.pk == None:
self.adv = Mymodel.objects.get(pk=self.kwargs.get("pk"))
kwargs = super(UpdateAndAdd, self).get_form_kwargs()
kwargs.update({'instance': self.adv})
else:
kwargs = {'initial': self.get_initial()}
if self.request.method in ('POST', 'PUT'):
kwargs.update({
'data': self.request.POST,
'files': self.request.FILES,
})
self.adv = Mymodel.DoesNotExist
kwargs = super(UpdateAndAdd, self).get_form_kwargs()
return kwargs
и сама форма:
class MyForm(forms.ModelForm):
def get_form_kwargs(self):
kwargs = super(MyForm, self).get_form_kwargs()
kwargs.update({
#хочу взять pk и и запросом вывести нужные записи поля point формы
})
return kwargs
class Meta:
model = Mymodel
fields = ['teacher', 'point', 'day', 'time_begin', 'time_end', 'programm']
Повторяю вопрос, правильно ли я свормировал view для передачи request? и подобным сопособом смогу ли я в форме взять и подставить pk?