Как получить параметр url в качестве начальных данных в мастере форм django?
В моем urls.py есть следующая строка:
url(r'^voter/(?P<voter_id>{id})/$'.format(id = UUID_PATTERN), views.VoterWizard.as_view(views.FORMS), name='voter_index'),
Здесь у меня есть voter_id
Тогда в моем views.py у меня есть этот класс:
class VoterWizard(SessionWizardView):
#initial_dict = {}
def get_form_initial(self, step):
initial = {}
print(self, step)
return self.initial_dict.get(step, initial)
def get_template_names(self):
return [TEMPLATES[self.steps.current]]
def done(self, form_list, **kwargs):
# do_something_with_the_form_data(form_list)
return HttpResponseRedirect('voting_success.html')
В целом это работает, но я понятия не имею, как я могу заполнить некоторые исходные данные в форме?
Как я могу прочитать свой voter_id из URL, выполнить запрос и передать результат в форму? Я знаю, что мне нужно набрать initial_dict или initial в get_form_initial.
Но как???
Большое спасибо!
1 ответ
Я наконец нашел решение добавить следующую функцию:
def get_context_data(self, form, **kwargs):
context = super(VotingWizard, self).get_context_data(form, **kwargs)
context.update({'voting': Voting.objects.get(uuid=self.kwargs['voting_id'])})
return context