2014-03-24 45 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

謝謝你這麼多。如此明顯(現在)。 –