2

嗨,我想使用基于类的视图的片段,但是这种形式的实例必须传递一个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')
4

1 回答 1

9

您在这里有两个选择:

编写自己的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对正常工作。

于 2012-09-16T19:26:05.760 回答