1

User私のDjango 1.5c1プロジェクト(現在、githubのDjango 1.5ブランチの最新版で実行中)にカスタムユーザーモデルがあります(他の名前を付ける必要がなかったので、 実際に名前が付けられています)。AUTH_USER_MODEL設定で適切に定義されているため、authモジュールは正しく機能し、ログインなどは問題なくできます。

ただし、カスタム ユーザー モジュールが有効になっていると、管理サイトは機能しません。に追加admin.autodiscover()するとurls.py、サイトのすべてのページ (管理ページだけでなく) でNotRegistered例外がスローされ、 The model User is not registered. トレースバックは、明らかにそのモデルを登録する前に、 がadmin.autodiscover()を呼び出そうとしていることを示しています。admin.site.unregister(User)

ユーザー モデルの名前を 以外に変更しようとしましUserたが、うまくいきませんでした。admin.pyまた、そのアプリ用に独自の作成を試みた後、実行前に指定されUserたカスタム モデルを使用してカスタム モデルを手動で登録しようとしましたが、実際には既に登録されているという別の例外が発生しました。UserAdminadmin.pyadmin.autodiscover()User

仕事をするために次に何を試すべきadmin.autodiscover()ですか?

4

2 に答える 2

2

カスタム ユーザー モデルを管理者と連携させたい場合は、いくつかの余分な手順を踏む必要があるようです。ドキュメントから:

... User モデルは、いくつかの追加の属性とメソッドを定義する必要があります。これらの方法により、管理者はユーザーの管理コンテンツへのアクセスを制御できます。

class models.CustomUser

is_staffユーザーが管理サイトへのアクセスを許可されている場合は true。

is_activeユーザー アカウントが現在アクティブな場合は True。

has_perm(perm, obj=None)ユーザーが指定されたアクセス許可を持っている場合は true。

has_module_perms(app_label)ユーザーが特定のアプリのモデルにアクセスする権限を持っている場合は true。

于 2013-03-11T04:34:07.503 に答える
1

カスタム ユーザー モデルを使用して真新しい空のプロジェクトをセットアップし、状況を再現しようとしたところ、診断に至りましたdjango-usertools。Django 1.5 用に更新されておらず、明らかにカスタム ユーザー モデルと競合しているプロジェクトにパッケージを追加しました。 . 設定のインストール済みアプリのリストからそのパッケージを削除すると、問題が解決しました。

于 2013-02-19T18:35:00.487 に答える