2014-03-24 43 views
1

我创建了一系列表单,通过Django的表单向导进行处理,但是表单由许多下拉框组成,其内容取决于当前用户,因此我需要通过用户作为kewword参数。Django,DataWizard,SessionWizardView获取当前用户

我目前所面对的是这样的:

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获得用户,但是,这在表单向导过程中似乎难以捉摸......

回答

4

您可以从self获取request对象。

def get_form_kwargs(self, step): 
    if step == 0: 
     return {'user': self.request.user} 
    else: 
     return {} 
+0

谢谢你这么多。如此明显(现在)。 –