使用基于类的视图更新Django中的用户密码

2024-10-01 02:35:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用基于类的视图和Django的SetPasswordForm模型,编写一个视图给管理员更新另一个用户的密码。

我的视图.py

class UserSetPasswordUpdateView(GroupRequiredMixin, FormView):
    form_class = forms.SetPasswordForm
    model =  User
    template_name = 'app/admin/object_update.html'
    success_url = reverse_lazy('portal:admin_user')
    group_required = u"Administrator"

    def get_form_kwargs(self):
        kwargs = super(UserSetPasswordUpdateView, self).get_form_kwargs()
        kwargs['user'] = User.objects.filter(pk=self.kwargs['pk'])
        return kwargs

update_change_password = UserSetPasswordUpdateView.as_view()

我的网址.py

^{pr2}$

并且不要显示任何错误,只需转到success_url,但是密码不会更新。


Tags: pyselfform视图url密码adminupdate
1条回答
网友
1楼 · 发布于 2024-10-01 02:35:31

您的视图基于FormView。这对模型表单没有任何了解,除了检查数据是否有效之外,它不会对数据做任何操作。SetPasswordForm在保存表单时更改密码,但此视图从不执行此操作。在

您可以重写form_valid来显式地调用form.save(),但最好使用一个更合适的基类,比如UpdateView,它将为您实现这一点。在

相关问题 更多 >