2012-09-16 58 views
2

嗨我想使用帶有基於類的視圖的snippet,但此表單的實例必須通過User對象ex。傳遞請求對象以形成具有基於類的視圖的實例

theform = forms.PasswordReset(request.user,request.POST) 

這裏是一個問題,如何使用基於類的觀點做到這一點:

class UserChangePassword(FormView): 
    form_class = PasswordReset 
    template_name = 'profile/change_password.html' 
    success_url = reverse_lazy('user_account') 

回答

6

你這裏有兩種選擇:

寫自己的get_form方法。

def get_form(self, form_class): 
    return form_class(self.request.user, self.request.POST) 

寫自己get_form_kwargs和更新表單的代碼。

def get_form_kwargs(self): 
    kwargs = super(UserChangePassword, self).get_form_kwargs() 
    kwargs.update({'user': self.request.user, 'post': self.request.POST}) 
    return kwargs 

在這種情況下,你還需要更新的形式與kwargs雙正常工作。

相關問題