0

マルチサイトショップを作成するためにdjango 1.2を使用しています。ショップインスタンスごとに複数の管理者ログインが必要です。

site.com/au/admin
site.com/uk/admin
など。

URL に基づいてデータベース接続を処理するミドルウェア クラスと dbrouter があります。これはうまくいきます。

その特定のショップで利用できるものに基づいて、管理システムごとにいくつかのカスタマイズを追加しようとしています. そう:

admin.py :
国 == 'au' の場合:
admin.site.register(注文)
admin.site.register(支払い)

if country == 'uk':
admin.site.register(Store_locator)
など

彼女の問題: サイトの AU バージョンにログインすると、管理システムは AU の正しい要素を表示します。その後、英国にログインすると、引き続き管理システムの AU バージョンが表示されるため、上記のコードは最初のロードでのみ使用されるようです。djangoサーバーを強制終了して再起動し、別のショップ管理ページに移動すると、そのショップ用に再構成されます.

管理システムが読み込まれるたびに国の変更を取得するにはどうすればよいですか? そもそもなぜこの問題が発生するのでしょうか。

どんな助けでも大歓迎です。

ありがとう、イマンク

4

1 に答える 1

0

Django はリクエストごとに管理者設定を読み取るのではなく、サーバーが再起動されるたびに読み取ると思います。そのため、最初にアクセスした方に「固執」します。

Django.contrib.auth のパーミッションを使用して、特定の管理者ユーザーが管理者で表示できるものを制限し、すべてのモデルを標準として admin.py に登録してみませんか?

于 2010-06-16T21:26:10.530 に答える