5

アプリ内で正常に使用しているカスタム ユーザー モデルを作成しました。

問題は、Admin 内のユーザー編集画面で、パスワードを設定するための非常に便利なインターフェイスではなく、現在のパスワード ハッシュが表示されることです。

Python 2.7 で Django 1.5b1 を使用しています。

管理者ユーザー インターフェイスのために、Django 管理者がネイティブ ユーザーと同じようにユーザー モデルを処理するように説得するにはどうすればよいですか?

4

4 に答える 4

10

ドキュメントでは、カスタム モデルを管理者に登録し、いくつかのメソッドも定義して、管理者インターフェイスがカスタム ユーザー モデルで動作するようにする必要があることを示唆しています。

User の組み込みフォームを定義する必要がある場合もあります。

カスタムユーザーと django.contrib.adminから

You will also need to register your custom User model with the admin. If your custom User model extends AbstractUser, you can use Django's existing UserAdmin class. However, if your User model extends AbstractBaseUser, you'll need to define a custom ModelAdmin class.

于 2012-12-01T17:45:34.383 に答える
0

AbstractBaseUser を拡張する場合は、ModelForm から派生した、作成フォームと、パスワードなしの更新フォームの 2 つのフォームが必要になります。

次に、管理フォームで、個別の作成フォームと更新フォームを、対応するフィールドセットとともに指定します。

class MyUserAdmin(UserAdmin):
    # The forms to add and change user instances
    form = UserChangeForm
    add_form = UserCreationForm

    fieldsets = (
        (None, {'fields': ('email', 'first_name', 'last_name')}),
    )
    add_fieldsets = (
        (None, {'fields': ('email', 'password', 'password2', 'first_name', 'last_name')}),
    )

新しいユーザーのパスワードは機能します。管理者ではなく、定義済みの django フォームでパスワードの変更を行います。

于 2013-07-25T02:45:23.040 に答える