Django, DataWizard, SessionWizardView получить текущего пользователя
Я создаю серию форм, обрабатываемых с помощью мастера форм Django, однако формы состоят из множества раскрывающихся списков, содержимое которых зависит от текущего пользователя, и поэтому мне нужно передать User в качестве аргумента kewword.
Что у меня на данный момент таково:
class ViewDataWizard(SessionWizardView):
template_name="wizards/data/view_data.html"
def done(self, form_list,**kwargs):
form_data = process_form_data(form_list)
return render_to_response('wizards/data/view_data_done.html',{'form_data':form_data})
Тем не менее, я пытаюсь произвести это:
class ViewDataWizard(SessionWizardView):
template_name="wizards/data/view_data.html"
def get_form_kwargs(self, step):
if step == 0:
return {'user':<USEROBJECT>}
else:
return {}
def done(self, form_list,**kwargs):
form_data = process_form_data(form_list)
return render_to_response('wizards/data/view_data_done.html',{'form_data':form_data})
Где во втором примере выше, мне нужно заменить USEROBJECT текущим пользователем, чтобы заполнить серию форм.
Я что-то упускаю действительно очевидное? Традиционно я бы получить пользователя от request.user
однако в данном представлении это кажется неуловимым в процессе мастера форм...
1 ответ
Решение
Вы можете получить request
объект из self
,
def get_form_kwargs(self, step):
if step == 0:
return {'user': self.request.user}
else:
return {}