Django v1.0 documentation

FAQ: admin

revision-up-to:8961 (1.0)

ログインできません。正しいユーザ名とパスワードを入力したのに、エラーメッセージも出ず再度ログインページが表示されるのです。

Django の発行するクッキーのドメインと、ブラウザに格納されたドメインが一致し ていないため、ログインクッキーが正しく設定されないからです。以下の二つの対 策を試してみて下さい:

  • admin 設定ファイルの SESSION_COOKIE_DOMAIN とお使いのドメインが一 致するように設定してください。例えば、ブラウザで “http://www.example.com/admin/” にアクセスするようになっているのなら、 “myproject.settings” には SESSION_COOKIE_DOMAIN = 'www.example.com' と設定せねばなりません。
  • ブラウザによっては (Firefox?) ドットの入っていないドメインからのクッ キーを受け取ろうとしないようです。admin を “localhost” などのようなドッ トを含まないドメインで実行しているのなら、”localhost.localdomain” や “127.0.0.1” のように指定してアクセスしてください。また、 SESSION_COOKIE_DOMAIN もそれに合わせて変更してください。

ログインできません。正しいユーザ名とパスワードを入力したところ、「正しいユーザ名とパスワードを入力してください」というエラーメッセージの表示されたログインページが表示されます。

ユーザネームとパスワードが本当に正しいのなら、ユーザアカウントが is_active で、かつ is_staffTrue になっているか確かめて下さ い。 admin サイトにアクセスできるのは、これら二つのフィールドが共に True であるユーザだけです。

キャッシュミドルウェアに admin サイトをキャッシュさせなくするにはどうすればよいですか?

CACHE_MIDDLEWARE_ANONYMOUS_ONLY 設定を True にしてください。 詳しくは キャッシュのドキュメント を参照してください。

admin 上でフィールドの値をオブジェクトを最後に編集したユーザの指定した値と同じにするにはどうすればよいですか?

現時点では、 Django はこの操作を行う正規の方法を提供していません。しかしこ の要望はよく出ているので、どうやって実装するかを議論しているところです。問 題は、(現在のユーザを判定するのに) モデルレイヤと admin レイヤとリクエスト レイヤをカップリングしたくないという点にあります。これは難しい問題です。

solution that doesn’t require patching Django というハックを提供している 人もいますが、これは正規の方法ではなく、将来うまく働かなくなる可能性があり ます。

admin でオブジェクトを作成したユーザだけがオブジェクトを編集できるようにアクセス制限するにはどうすればよいですか?

一つ前の質問の答えを見て下さい。

開発サーバでは admin サイトの CSS や画像がうまく表示されるのに、 mod_python を使うと表示されません。

「mod_python で Django を使う」というドキュメントの admin ファイルの提供 を参照してください

“list_filter” に ManyToManyField を入れたのに、フィルタが表示されません。

Django が ManyToManyField に対してフィルタを表示するのはオブジェクトが 二つ以上のときだけです。

例えば、 list_filtersites が入っており、データベースにたった一 つしかサイトが登録されていなければ、 “Site” フィルタは表示されません。 この状況では、サイトによるフィルタは無意味だからです。

admin インタフェースの機能をカスタマイズするにはどうすればよいですか?

方法はいくつかあります。Django が自動生成する add/change フォームを利用して 楽をしたければ、モデルの class Adminjs パラメタを使ってページに 任意の JavaScript モジュールを貼り付けてください。パラメタは文字列で表した URL からなるリストで、 admin フォームに <script> タグを使って取り込む JavaScript モジュールを指しています。

単に自動生成されるフォームをいじる以上の柔軟さが必要な場合には、 admin 用の カスタムビューを書いて下さい。 admin はそれ自体 Django で作られており、カス タムのビューを書いて認証システムやパーミッションのチェックにフックを掛け、 必要な処理を行えます。

admin のルック & フィールをカスタマイズしたいのなら、次の質問に進んで下さい。

動的に生成される admin サイトがみっともありません!どうすれば変更できますか?

私達は好きなんですが。そうは思わないのなら、 CSS スタイルシートや画像ファイ ルを編集して、 admin サイトのプレゼンテーションを変更できます。サイトはセマ ンティックな HTML を使って書かれているので、やりたい変更は全て CSS スタイル シートの編集で実現できます。てほどきに admin で使われているCSS のガイド を用意してあります。

パスワードハッシュを編集せずにユーザを作成するにはどうすればよいですか?

admin サイトでユーザを作成したいのなら、 Django の開発版を使ってください。 この問題は 2006 年 8 月 4 日に修正されたので、それ以降のバージョンが必要で す。