【发布时间】:2021-03-26 02:11:34
【问题描述】:
使用 Django 3.16,进入管理控制台并管理用户(admin/auth/user/412/change/ 在用户 id 412 的示例中),我尝试更改用户密码点击链接“您可以使用此表单更改密码”。
但是当我单击链接时,我收到错误“ID 为“412/密码”的用户不存在”。这就像 URL 设置没有正确地将 PK/ID 从 URL 中提取出来。
(您会看到我在管理控制台中使用了 Grappelli 样式。我已经在没有使用 Grappelli 的情况下对其进行了测试,但我得到了相同的错误。)
我的 urls.py 有通常的行 path('admin/', admin.site.urls)。
有什么原因导致这种情况发生,或者我能做些什么?
谢谢
约翰
进一步调查表明,仅当我使用自定义用户管理表单时,如下所示:
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserChangeForm
class UserAdmin(admin.ModelAdmin):
list_display = ('username','first_name', 'last_name','email','is_superuser','is_staff','is_active','last_login')
list_editable = ('is_active','is_superuser','is_staff')
form = UserChangeForm
list_filter = ('is_superuser','is_active','is_staff','last_login')
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
我的form = UserChangeForm 线路有问题吗?
【问题讨论】:
标签: django django-admin