我想使用默认的PasswordChangeView
来更改项目中用户的密码。问题是默认情况下它适用于当前用户。是否可以将视图与自定义用户一起使用,即在URL中提供?
# this doesn't work by default
url(r'users/(?P<user_id>\d+)/change_password/$',
PasswordChangeView.as_view()
name="password-change")
答案 0 :(得分:1)
我认为PasswordChangeView
旨在更改已登录用户的密码。然后,您必须创建一个继承自PasswordChangeView的视图,并覆盖方法get_form_kwargs
,如下所示:< / p>
class _PasswordChangeView(PasswordChangeView):
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs['user'] = User.objects.get(id=1) # or any, or get id from url
return kwargs
出于安全原因,请务必为此视图添加一些权限。顺便说一句,django管理员已经有了这个选项。