0
我在django項目上工作,我使用AbstractUser模型將默認django用戶模型修改爲員工模型。重定向時Django無法找到模式名稱
現在,在他們第一次登錄時,我需要重定向員工以更改密碼頁面,該頁面是在EmployeeAdmin - get_urls
方法中定義的Url。也覆蓋默認登錄行爲,我不得不重寫默認AdminSite如下圖所示:
admin.py
class MyAdminSite(AdminSite):
login_form = AdminLoginForm
admin_site = HRMSAdminSite(name='My-admin')
@admin.register(Employee, site=admin_site)
class EmployeeAdmin(admin.ModelAdmin):
def get_urls(self):
return [
path(
'<id>/password/',
self.admin_site.admin_view(self.user_change_password),
name='auth_user_password_change',
),
] + super().get_urls()
def user_change_password(self, request, id, form_url=''):
pass
而且我AdminLoginForm我檢查的用戶第一次登錄:
forms.py
class AdminLoginForm(AuthenticationForm):
def confirm_login_allowed(self, user):
# user.last_login is blank if this is first login for this user
if not user.last_login:
return redirect('auth_user_password_change')
然而,在運行時,一博韋代碼我得到以下錯誤:
找不到'auth_user_password_change'。 'auth_user_password_change'不是有效的視圖函數或模式名稱。
我不知道爲什麼django無法找到命名的網址,即在EmployeeAdmin的get_urls()方法內定義的。