2016-08-05 6 views
1

スーパーユーザが新しいユーザを対話的に作成できるように私の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に表示された(またデータベースに格納されている)されていない」ここ

は私の管理のスクリーンショットです:

enter image description here

管理者経由で対話形式で作成されたユーザーのログイン試行をDjangoで受け入れる方法を教えてください。カスタム・ユーザー・モデルはdjango.contrib.auth.models.AbstractUserを拡張する場合は

+0

認証エラーの詳細について教えてください。私。正確な例外とメッセージは何ですか? –

+0

@BasicWolfは問題の一部です - 認証の失敗を掘り下げる最も簡単な方法は何ですか?私のコードは認証をしていません - それはすべてのdjango認証ブラックボックスです。 –

+0

- ただし、新しく作成したユーザーでログインしようとすると、認証プロセスの一部が失敗します。 - それで、あなたは新しく作成されたユーザーにどのくらい正確にログインしようとしますか? –

答えて

3

documentation

によると、あなたはDjangoの既存django.contrib.auth.admin.UserAdminクラスを使用することができます。

したがって、UserAdminを拡張することはすべきことです。

関連する問題