【问题标题】:Is something wrong with the password change page on Django admin?Django admin 上的密码更改页面有问题吗?
【发布时间】: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


    【解决方案1】:

    如果您使用的是 AbstractBaseClass,您需要在设置文件中提供 CustomBackend 的路径

    【讨论】:

    • 我没有使用 AbstractBaseClass。还有其他想法吗?
    • 如果可能的话,你能分享你的这个项目的 git 链接吗?我会尽量从基地看
    • 我发现它是由使用自定义用户管理页面引起的(请参阅我在问题底部添加的内容),但我仍然不知道如何解决它!
    【解决方案2】:

    好的,问题是我使用的是 ModelAdmin 表单,而不是 UserAdmin 表单,作为我的自定义类。

    自定义类需要如下所示:

    from django.contrib import admin
    from django.contrib.auth.admin import UserAdmin
    from django.contrib.auth.models import User
    
    class UserAdmin(UserAdmin):
        list_display = ('username','first_name', 'last_name', 'email','is_superuser','is_staff','is_active','last_login')
        list_editable = ('is_active','is_superuser','is_staff')
        list_filter = ('is_superuser','is_active','is_staff','last_login')
    
    admin.site.unregister(User)
    admin.site.register(User, UserAdmin)
    

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      • 2020-12-08
      • 1970-01-01
      • 2010-10-01
      相关资源
      最近更新 更多