スーパーユーザが新しいユーザを対話的に作成できるように私のDjango(1.8)管理者を設定しました。Django Admin:ブラウザでユーザを作成する
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)
これがOKを動作するように見える私のUserモデルは私のadminファイルは次のようになりますことを意味するAbstractUser
を使用してカスタマイズされました私は管理者に行き、パスワード、ユーザ名、そして新しいユーザの他のすべてのカスタムフィールドを設定することができます。ただし、新しく作成したユーザーでログインしようとすると、認証処理の一部が失敗します。 auth_views.login
ビューと定型djangoログインテンプレートを使用しているページからログインします。
一方、djangoシェル内でmanage.py createsuperuser
またはcreateuser()
のいずれかを使用して新しいユーザーを作成すると、これらのユーザーは正常にログインできます。これは、パスワードの格納やハッシングと関係があると思われます。現在、管理者は新しいユーザーのパスワードを入力するだけです。それは、私がやりたいことです。私はこの望みの結果を得るにはどうすればいいのですか?私は管理者に新しいユーザーを簡単に作ることができるように、(それは私が持っていない)IT以外の賢いマネージャーが欲しいです。私はそのようなシステムのリスクを認識しています。
ドキュメントは一つのセクションでsetting this interactive user creation upに矛盾するように見える:
それはあなたが残りを編集を許可する前に、ユーザー名とパスワードを選択する必要があり、その中に「『』ユーザーを追加し、管理ページは、標準の管理ページとは異なりますユーザーのフィールドの "。段落のカップルの後に続い
と
:「ユーザー・パスワードはadminに表示された(またデータベースに格納されている)されていない」ここ
は私の管理のスクリーンショットです:管理者経由で対話形式で作成されたユーザーのログイン試行をDjangoで受け入れる方法を教えてください。カスタム・ユーザー・モデルはdjango.contrib.auth.models.AbstractUserを拡張する場合は
認証エラーの詳細について教えてください。私。正確な例外とメッセージは何ですか? –
@BasicWolfは問題の一部です - 認証の失敗を掘り下げる最も簡単な方法は何ですか?私のコードは認証をしていません - それはすべてのdjango認証ブラックボックスです。 –
- ただし、新しく作成したユーザーでログインしようとすると、認証プロセスの一部が失敗します。 - それで、あなたは新しく作成されたユーザーにどのくらい正確にログインしようとしますか? –