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

ここには2つのオプションがあります。

独自の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 に答える