問題タブ [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.

0 投票する
2 に答える
12137 参照

django - 'WSGIRequest'オブジェクトには属性'session'がありません

このエラーは、process_responseメソッドのカスタムミドルウェアで時々発生します。私は次のミドルウェアのリストを持っています:

]

したがって、セッションミドルウェアは私のミドルウェアの前に配置されます。del request.sessionソースコードに式がありません。これはprocess_responseメソッドです。

なぜそれが起こるのかわからない。

編集03-08-201212-30

ブラウザがファビコンを要求しているようです。

このURLを解決するためのdjangoのデフォルトの動作はありませんか?このリクエストを処理するビューを明示的に指定しなかったためです。また、ページのソースコードではファビコンを使用していません。つまり、/favicon.icoをリクエストするのはブラウザだと思います。404エラーの場合、HttpRequestが適切に構築されないので、リクエストオブジェクトにセッションがないのも不思議ではありません。しかし、それは私の仮定にすぎません。

また、必要に応じて、このエラーが発生しているときにdjango開発サーバーを使用しています。

13-00を編集

ファビコンでこの問題を修正しましたが、それでもエラーが発生します。なぜセッションがリクエストに存在しないのですか?

0 投票する
1 に答える
407 参照

django - django admin (キャッシング、ミドルウェア、python/django) でページのコンテンツを変更するとブラウザが遅延する

django のプロジェクトで魔女のキャッシングに少し奇妙な問題があります。

django-admin でページ コンテンツを編集できます。それを行ってサイトを更新すると、何も起こりません。変更には数分待たなければなりません。おもしろいことに、ブラウザー (またはコンピューター) を変更すると、待つ必要はありません。変更がオンになっています。それはdjango、ブラウザ、または何の問題ですか?変更をすぐに取得するように setting.py を設定することは可能ですか?

ちなみに、「django.middleware.cache.FetchFromCacheMiddleware」をオフにすると、問題は消えますが、キャッシュをオフにしたくない...

何か案は?

0 投票する
1 に答える
1004 参照

django - GETパラメータdjangoのZeroDivisionError

ミドルウェア.py

問題があります: ゼロを GET パラメーター (?perpage=0) として URL に変換したい場合、ZeroDivisionError float のゼロ除算が表示されます。perpage = 0の場合、ページネーションなしでページ上のすべてのオブジェクトを取得する必要があります。これどうやってするの?view.py には何が必要ですか?

0 投票する
6 に答える
41401 参照

django - 禁止 (403) CSRF 検証に失敗しました。リクエストは中止されました

ログインフォームのアプリを作成していますが、アプリを実行しているときにログインボタンをクリックすると、次のエラーが発生します

禁止 (403) CSRF 検証に失敗しました。リクエストは中止されました。

view.py のコードは次のとおりです。

0 投票する
2 に答える
114 参照

django - デモ製品のdjangoプロジェクトのモデルを削除できないようにする

djangoフレームワーク上に構築されたデモ製品があり、ライブで実行されています。見込み客は、スーパーユーザーアクセス権限でUIにログインします。削除オプションを表示したかったのですが、削除オプションを実行すると、「デモログインは許可されていません」のようなメッセージが表示されます。

djangoフレームワークでこれをすばやく達成する方法はありますか?これを行うための最良のオプションは何ですか。

ありがとうSiva

0 投票する
1 に答える
255 参照

django - URL に基づいてミドルウェアでテンプレート名とレンダリングにかかる​​時間を取得する

その特定のビューのデータベース クエリについて、レンダリングされているテンプレートの名前とそれにかかった時間を教えてくれるミドルウェアを書きたいと思います。Django Debug Toolbar も同じことを行いますが、カスタム リクエストとレスポンス オブジェクトが記述されているため、それを機能させることができません。そこで、get リクエスト変数が追加された URL で同じことを行うカスタム ミドルウェアを作成することを考えました。
Say127.0.0.1/index/pollsはすべての投票を教えてくれます。試し127.0.0.1/index/polls/?my_toolてみると、URLが呼び出され、データが取得されます。

それを実装する方法に関する提案はありますか?実際の例はありますか?

0 投票する
1 に答える
149 参照

python - Djangoでモバイルスイッチングが機能していませんか?

私は以下のように構成されたモバイル部分settings.pyのdjangoプロジェクトを持っています

および site_middleware.py :

エラーは表示されませんが、切り替えが機能していませんか?

0 投票する
3 に答える
2241 参照

django - djangoのどこにデフォルトの500トレースバックがレンダリングされているので、それを使用して独自のログを作成できますか?

これを使用して、カスタムミドルウェアクラスのprocess_exception()メソッド内にhtmlログファイルを生成したいと思います。例:

  • 例外がキャッチされました。
  • process_exception(request)が呼び出されました。
  • process_exceptionは、デフォルトのエラーhtmlを返す関数を呼び出します。
  • process_exceptionは、返されたhtmlをdjangoサーバーが実行されているログフォルダーに書き込みます。

Djangoがこれらの例外のメールを送信できることは知っていますが、これは使用したくありません。私はJSONを使用してRESTfulアプリケーションに取り組んでいるので、エラー500を示すjson文字列を返し、htmlを別の場所に配置する方が適切だと感じています。

前もって感謝します。

申し訳ありませんが、明確にする必要があります。独自の500.htmlを作成したくないので、Debug=Trueの場合にdjangoが使用するものを使用します。つまり、エラーファイルを生成し、ログフォルダに配置します。

助けてくれたMarkに感謝します-興味のある人のための私の解決策は次のとおりです。

このコードは、例外をインターセプトし、sysモジュールとdjangosのデフォルトエラーテンプレートを使用して、適切にフォーマットされたトレースバック/例外情報ページを生成し、これをログフォルダーに配置してから、httpエラー500が発生したことを示すJSONオブジェクトを返します。

0 投票する
2 に答える
4130 参照

django - 「ユーザー」オブジェクトには属性 is_authenticated がありません

django アプリの User モデルを作成しました

このモデルを使用するための認証ミドルウェアも作成しました。

settings.py ファイルを正しく修正しました。このバックエンドに print ステートメントを追加すると、ユーザーの詳細が出力されます。django docs で is_authenticated を実装する必要があることを読んだことを思い出しません。私は何かばかげたことを見逃していますか?

0 投票する
3 に答える
4227 参照

python - Djangoミドルウェアが正しく構成されていませんか?

何らかの理由で、カスタムミドルウェアが原因でImproperlyConfiguredエラーが発生します。

settings.py参考までに、ファイルの関連部分は次のとおりです。

そして、django.wsgiその価値のあるファイル。(注:ここにはカスタムのものがたくさんあります。)

残念ながら、現時点では何を試してみるのかよくわかりません。エラーは非常に役に立ちません。

  • 問題の行を削除すると、次のカスタムミドルウェアがプログラムを壊し、パスの問題である可能性があると思います。
  • グーグルは助けの邪魔をしていないようです。

問題が何であるか、そして何を試す価値があるかについてのアイデアはありますか?