問題タブ [django-middleware]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - セッション内のユーザーのグループを決定する Django ミドルウェア
django.contrib.auth を使用するアプリがありますが、Django の組み込みのアクセス許可システムは使用しません。代わりに、ビューには @login_required デコレーターがあり、ユーザーが属するグループを確認し、グループに応じてビュー内のコード実行のさまざまな分岐に従います。
ユーザーは 1 つのグループにのみ所属できます。
毎回ユーザーのグループをチェックするのは多すぎるように思われるので、セッションでユーザーのグループを知らせる Django ミドルウェアを作成しようとしています。
以下のコードを見ると、ミドルウェアは希望どおりに動作しますか?
次に、必要に応じて request.session['thegroup'] を確認します。
あなたの提案や意見が必要です。このように処理された場合、セッションは安全ですか? これはまったく機能しますか?私は、Django、Python、およびプログラミング全般が初めてです。
ありがとう。
django - Django ミドルウェアを使用して現在のページ URL の GET 変数をチェックする
ミドルウェアを使用して、ユーザーが選択した複数の選択肢をページ リクエスト間で保持できますか?
車の年、メーカー、モデル、シリーズ、スタイル、色、トランスミッションなど、いくつかの値があります。以前に選択した選択肢をアクティブにしたまま、ユーザーが選択肢を選択できるようにしたいと考えています。URLをブックマーク可能にしたいので、これにセッションを使用したくありません。
私は次のようなことを考えていました:
また、get_choices() の下にあるすべての選択肢を返す方法もわかりません。
編集1
EDIT 2 私の URLConf は次のとおりです。
次に、ビューは次のとおりです。
django - 壊れたリクエスト(またはDjangoの「壊れたリンク」レポート)?
私は奇妙な壊れたリンクレポートを受け取りました:
そこで、これらのレポートの送信を担当するCommonMiddlewareを調べました。これは次のようになります(Django 1.1ライセンスがここに適用されます;)):
コードは非常に単純なので、私が受け取った電子メールで、リファラーがホストおよび要求URLと交換されていることは明らかです。それが何を意味するのかわかりません-それがハックトライアルだったのか、Djangoのバグだったのか、コードのバグだったのか(参考:Djangoにはパッチが適用されておらず、他のbroken link
メールは正しいです)。
ここで何が間違っているのか分かりますか?
django - Django:Django のスタック順序は何ですか?
と聞くのが正しい方法だと思います。コードのどの部分が最初に実行されるか、2 番目に実行されるかなど、疑問に思っています。
私の仮定は次のようになりますが、わかりません:
- リクエスト
- ミドルウェア
- 意見
- モデル
- ミドルウェア
- 応答
私が尋ねている理由は、リクエスト変数に基づいてモデルで動的に何かを発生させたいためであり、ビューを介して渡すことなく、リクエストをモデルレイヤーに自動的に追加する最良の方法をデバイスにしようとしています。ある種のミドルウェアの素晴らしい仕掛けが、何とかそれを行う方法になると思います。
django - Django Middleware:ミドルウェアからビューのパラメーターにアクセスするにはどうすればよいですか
私がビューを持っているとしましょう:
そしてミドルウェア:
もちろん、arg1 と arg2 は、urls.py を使用して URL パラメーターを介して渡されます。
これを行う必要があるのは、ビュー関数を実行する前に request.session に何かを追加したいからです (ただし、URL から必要なもの)。
django - DjangoWebサイトの特定のページの言語を変更するにはどうすればよいですか
Djangoの国際化により、設定ファイル(サイト全体)またはユーザーごと/セッションごとに言語コードを設定できます。
特定のページの言語を変更するにはどうすればよいですか?
request.LANGUAGE_CODEを翻訳したい方法で設定するミドルウェアを作成しましたが、この属性を使用して選択した翻訳を行うものはないようです。
python - request.get_host()に応じてdjangoでdbを変更するには?
マルチサイト プラットフォームを作成しています。私のプラットフォームなら、誰でも簡単にサイトを作ることができます。Django multidb サポートを使用する予定です。1 つのサイトに 1 つのデータベース。そして、request.get_host() に応じて db 設定を変更する必要があります。私は良い考えではないと思います。他の決定を促しますか?サイトのさまざまなデザイナーでどのように実現されていますか?
python - Django の起動コードをどこに配置しますか?
サーバーの起動時にこれらのコード行を実行したいと思います(開発と本番の両方):
設定が既に読み込まれている必要があるため、入れても機能しsettings.py
ません。
データベースを使用するミドルウェアがいくつかあり、それらが失敗してビューにアクセスできないため、それらをビューに入れて外部からそのビューにアクセスすることもできません。
それらをミドルウェアに入れることは機能しますが、アプリがアクセスされるたびに呼び出されます。考えられる解決策は、すべてのジョブを実行してから自分自身を削除するミドルウェアを作成して、MIDDLEWARE_CLASSES
呼び出されないようにすることです。モンキーパッチをあまり使わずにそれを行うことはできますか?
python - Django の非グローバル ミドルウェア
Django には、リクエストごとに実行されるミドルウェアを定義する設定ファイルがあります。このミドルウェア設定はグローバルです。ビューごとに一連のミドルウェアを指定する方法はありますか? 特定の URL で、グローバル セットとは異なる一連のミドルウェアを使用したいと考えています。
django - Django:ログイン時に管理者でデフォルト言語を設定する方法
ユーザーのデフォルト言語をユーザー プロファイルに保存しており、ログイン時に管理者のデフォルト言語をそれに設定したいと考えています。
私が考えていた1つの可能性は、ミドルウェアを使用することですが、これを実行するとprocess_request
、ミドルウェアの後に処理されるため、そこにユーザーオブジェクトが表示されないため、次のリクエストの後にしか設定できなかったと思います!
どんな解決策も大歓迎です!