gpt4 book ai didi

python - Django 管理员 : Creating users in the browser

转载 作者:太空宇宙 更新时间:2023-11-04 00:47:30 24 4
gpt4 key购买 nike

我已设置我的 Django (1.8) 管理员以允许 super 用户以交互方式创建新用户。我的用户模型是使用 AbstractUser 自定义的,这意味着我的管理文件如下所示:

admin.py

from django.contrib import admin
from app.models import CPRUser

class UserAdmin(admin.ModelAdmin):

model = CPRUser
extra = 1

admin.site.register(CPRUser, UserAdmin)

这是模型:

class CPRUser(AbstractUser):
student = models.PositiveIntegerField(verbose_name=_("student"),
default=0,
blank=True)
saved = models.IntegerField(default=0)

这似乎工作正常,我可以通过管理员设置新用户的密码、用户名和所有其他自定义字段。但是,当我尝试使用新创建的用户登录时,身份验证过程的某些部分失败了。我从使用 auth_views.login View 和样板 django 登录模板的页面登录。

另一方面,如果我在 django shell 中使用 manage.py createsuperusercreateuser() 创建一个新用户,这些用户可以正常登录。这让我怀疑它与密码存储或散列有关 - 目前在管理员中我只能输入新用户的密码。事情是,这就是我想要做的。我怎样才能得到这个期望的结果 - 我希望非 IT 精明的经理(我不会知道他们的详细信息)能够轻松地在管理员中创建新用户。我知道这种系统的风险。

setting this interactive user creation up 上的文档似乎自相矛盾在一个部分中:

““添加用户”管理页面与标准管理页面不同,它要求您先选择用户名和密码,然后才能编辑用户的其余字段。”

然后是几段之后:

“用户密码不显示在管理中(也不存储在数据库中)”

这是我的管理员的屏幕截图:

enter image description here

如何让 Django 接受通过管理员交互创建的用户的登录尝试?

最佳答案

这在 documentation 中有描述,

If your custom User model extends django.contrib.auth.models.AbstractUser, you can use Django’s existing django.contrib.auth.admin.UserAdmin class.

因此,扩展 UserAdmin 应该可以解决问题。

关于python - Django 管理员 : Creating users in the browser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38786387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com