Как получить параметр 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
Другие вопросы по тегам