cs_*_*ckX 4 python django django-admin
我已经设置了 Django (1.8) 管理员以允许超级用户以交互方式创建新用户。我的用户模型是使用自定义的AbstractUser,这意味着我的管理文件如下所示:
管理员.py
\nfrom django.contrib import admin\nfrom app.models import CPRUser\n\nclass UserAdmin(admin.ModelAdmin):\n\n model = CPRUser\n extra = 1\n\nadmin.site.register(CPRUser, UserAdmin)\nRun Code Online (Sandbox Code Playgroud)\n这是模型:
\nclass CPRUser(AbstractUser):\n student = models.PositiveIntegerField(verbose_name=_("student"),\n default=0,\n blank=True)\n saved = models.IntegerField(default=0)\nRun Code Online (Sandbox Code Playgroud)\n这似乎工作正常,我可以通过管理并设置新用户的密码、用户名和所有其他自定义字段。但是,当我尝试使用新创建的用户登录时,身份验证过程的某些部分失败。我从使用视图auth_views.login和样板 django 登录模板的页面登录。
另一方面,如果我使用django shellmanage.py createsuperuser或在 django shell 中创建一个新用户,这些用户可以正常登录。createuser()这让我怀疑这与密码存储或散列有关 - 目前在管理中我只能输入新用户的密码。事实是,这就是我想要做的。我怎样才能得到这个想要的结果 - 我希望非 IT 经理(我不知道他们的详细信息)能够轻松地在管理员中创建新用户。我意识到这种系统的风险。
这些文档在一个部分中设置此交互式用户创建似乎是矛盾的:
\n“\xe2\x80\x9cAdd user\xe2\x80\x9d 管理页面与标准管理页面不同,它要求您选择用户名和密码,然后才能编辑用户的其余部分\xe2\x80\x99s领域。”
\n然后是几段:
\n“用户密码不显示在管理中(也不存储在数据库中)”
\n这是我的管理员的屏幕截图:
\n\n如何让 Django 接受通过管理员交互创建的用户的登录尝试?
\n| 归档时间: |
|
| 查看次数: |
6767 次 |
| 最近记录: |