我已经设置我的Django(1.8)管理员以允许超级用户以交互方式创建新用户。我的用户模型是使用AbstractUser
这意味着我的管理文件看起来像这样定制的:Django管理员:在浏览器中创建用户
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
视图和样板django登录模板的页面登录。
另一方面,如果我在django shell中使用manage.py createsuperuser
或createuser()
创建新用户,这些用户可以很好地登录。这导致我怀疑它是与密码存储或哈希处理 - 目前在管理员,我可以输入一个新的用户密码。事情是,那是我想要做的。我怎样才能得到这个理想的结果 - 我希望非IT管理者(其细节我不会)能够轻松地在管理员中创建新用户。我意识到这种系统的风险。
“中的‘添加用户’管理页面比,它需要您选择一个用户名和密码标准的管理页面不同,让您编辑其余部分之前:
该文档上setting this interactive user creation up一个部分似乎是矛盾的的用户领域。“
,然后几个段落后:
“用户密码不会在管理中显示(也存储在数据库中)”
这是我管理的屏幕截图:
我该如何让Django接受通过管理员交互创建的用户的登录尝试?
你可以提供关于认证失败的更多细节吗?即确切的例外和信息是什么? –
@BasicWolf这是问题的一部分 - 挖掘身份验证失败的最简单方法是什么?我的代码都没有进行身份验证 - 这都是django auth黑匣子。 –
- 但是,当我尝试使用新创建的用户登录时,身份验证过程的某些部分失败。 - 那么,您如何尝试登录新创建的用户? –