2024-10-01 00:20:25 发布
网友
我成功地使用了django的自定义用户模型。 最后一件要做的事情是“AdminChangePasswordForm”,超级用户可以更改任何用户的密码。在
当前的更改密码链接来自管理员:myapp:用户给出404
答案。在
重写get_url
并重写UserChangeForm以获得正确的url。在
它似乎是1.7.x中的一个“bug”,并在1.8.x中修复,它设置了url名称,因此您必须重写get_urls():
get_urls()
from django.contrib.auth.admin import UserAdmin as AuthUserAdmin from django.conf.urls import url class UserAdmin(AuthUserAdmin): def get_urls(self): return [ url(r'^(.+)/password/$', self.admin_site.admin_view(self.user_change_password), name='auth_user_password_change'), ] + super(UserAdmin, self).get_urls()
网址:
所以我遇到了类似的问题。当我试图将用户密码从admin更改为“/admin/accounts/siteuser/password/”(siteuser是我的自定义用户模型的名称)时,出现404错误并显示以下消息:“主键为u'password'的用户对象不存在。” 调查表明,这个问题是由于djangoauthtools(1.4.0)中的bug造成的,因为我使用NamedUserAdmin类继承。
因此,解决方案是(如果您需要从任何自定义UserAdmin(如从django authtools继承NamedUserAdmin):
from django.contrib.auth.forms import UserChangeForm from authtools.admin import NamedUserAdmin class SiteUserAdmin(NamedUserAdmin): ... form = UserChangeForm ...
或者从默认的django UserAdmin继承:
它似乎是1.7.x中的一个“bug”,并在1.8.x中修复,它设置了url名称,因此您必须重写
get_urls()
:网址:
^{pr2}$所以我遇到了类似的问题。当我试图将用户密码从admin更改为“/admin/accounts/siteuser/password/”(siteuser是我的自定义用户模型的名称)时,出现404错误并显示以下消息:“主键为u'password'的用户对象不存在。” 调查表明,这个问题是由于djangoauthtools(1.4.0)中的bug造成的,因为我使用NamedUserAdmin类继承。
因此,解决方案是(如果您需要从任何自定义UserAdmin(如从django authtools继承NamedUserAdmin):
或者从默认的django UserAdmin继承:
^{pr2}$相关问题 更多 >
编程相关推荐