Я работаю с Formwizard, чтобы создать многошаговую форму.Я переопределяю get_form_instance, чтобы предварительно заполнить мои формы данными модели (только при использовании форм для редактирования).Я четко указал условие IF:
if 'pk' in self.kwargs:
Когда я использую форму для создания новой, это должно оцениваться как ложное, когда я вызываю представление мастера.Я не передаю pk как kwargs при вызове мастера.Я использую URL, как это:
path('create/resume/', views.ResumeWizard.as_view(views.FORMS), name='create-resume')
Мой код представления мастера выглядит так:
class ResumeWizard(LoginRequiredMixin, SessionWizardView):
login_url = '/login/'
def get_form_initial(self, step):
if 'pk' in self.kwargs:
return {}
return self.initial_dict.get(step, {})
def get_form_instance(self, step):
if 'pk' in self.kwargs:
pk = self.kwargs['pk']
resume = Resume.objects.get(id=pk)
if step == 'resumes':
return resume
elif step == 'work_experience':
return resume.workexperience_set.all()
elif step == 'certifications':
return resume.certification_set.all()
elif step == 'education':
return resume.education_set.all()
elif step == 'skills':
return resume.skill_set.all()
elif step == 'languages':
return resume.language_set.all()
else:
return None
Когда я запускаю код, когда я создаю новый мастер формы, мои шагизаполнены экземплярами модели из моей базы данных.Что тут происходит?Разве get_form_instance не должен возвращать None, потому что я не передаю PK в kwargs?
Любая помощь будет высоко оценена.