我正在使用基于类的视图和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
,但是密码不会更新。
您的视图基于FormView。这对模型表单没有任何了解,除了检查数据是否有效之外,它不会对数据做任何操作。SetPasswordForm在保存表单时更改密码,但此视图从不执行此操作。在
您可以重写
form_valid
来显式地调用form.save()
,但最好使用一个更合适的基类,比如UpdateView,它将为您实现这一点。在相关问题 更多 >
编程相关推荐