問題タブ [django-context]

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 投票する
1 に答える
197 参照

jquery - Django - テンプレートタグインクルードで利用できないコンテキスト

これは私のhtmlの一部です。{{ form.subscription_year_plan }}は外側と内側で利用できますが、内側では利用できsignup_1.htmlませんsignup_2.html

何が問題だろう?

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

django - django でカスタム グローバル ログイン/ログアウト機能を実装する方法

カスタムのログイン/ログアウト機能を実装しようとしています。私の要件は、組み込みの django ログイン機能とは少し異なります。したがって、データベースに値 0 / 1 を入力して、ユーザーがログインしているかどうかを確認できるように、この機能を実装する必要があります。私はそれのためのブール値を持っています。ここでの質問は本当に次のとおりです。ユーザーオブジェクト/ユーザーがログインしていることを示す変数 (私の場合users.is_logged_in = True:) をすべての html テンプレートに渡して、ユーザー (および私のアプリケーション) がそれを認識できるようにするにはどうすればよいですか?また、すべての HTML ページのリンクをクリックしてログアウトできるはずです。ユーザーが正常にログインしたときに、プレースホルダーのようなものを作成して作成できるグローバル テンプレートはありますか? 私のコードは次のとおりです。

PS: render() メソッドを調べました..

このようなことをして、テンプレートをグローバル テンプレートなどとして利用できますか? しかし、私が見る問題は、ユーザーが認証されるとすぐに、ユーザーを appCenter.html にリダイレクトする必要があることです。

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

django - DjangoTEMPLATE_CONTEXT_PROCESSORSが何度も呼び出されています

すべてのページにいくつかの統計番号を表示する必要があるため、コンテキストプロセッサを使用することにしました。しかし、ページが読み込まれるたびに関数が2〜7回呼び出されていることがわかりました。関数内で4つのクエリを実行しているため、パフォーマンスが非常に悪くなっています。ページを読み込むたびに、最大28(4 * 7)のクエリが必要になる場合があります...

なぜこれが起こっているのか、そしてそれを回避するために何ができるのか知りたいです。

settings.py

views.py

[更新-ありがとう] @okmと@catherineは、非常に優れた補足的な説明を提供しました。@okmが言ったように、両方とも正しかった。私がRequestContextを何度も使用していたため、コンテキストプロセッサが何度も呼び出されていた。

@catherineも正しいです。コンテキストプロセッサに何を入れるかについては、特に注意を払う必要があります。コードを変更しましたが、ランディングページに統計番号を表示しているだけです。

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

django - Django:名前空間を指定してテンプレートのURLを取得するにはどうすればよいですか?

テンプレートをレンダリングしているときに、パスではなく名前空間の値を指定して、テンプレートのURLを取得したいと思います。たとえば、これの代わりに:

私は次のことができるようになりたいです:

ただし、上記ではエラーが発生します。どうすればいいですか?関数に名前空間を与えて実際のパスを取得する方法はありますか?

拡張例:

--urls.py

-アプリベース:urls.py

-アプリベース:views.py

前もって感謝します。

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

django - ミドルウェアでビューを反転できません

ミドルウェアを使用して Django rotue で不足している変数をキャッチしようとしていますが、Django がビューを見つけることができないため (urlconf に存在する場合でも)、URL を逆にすることはできません。例えば:

このルートでは:

ゲーム部分が指定されていないかどうかを検出し、その場合はミドルウェアでリダイレクトしようとしています:

request.urlconfテスト URL が含まれています。

私が考えることができる唯一のことは、URLリライタがオプションの部分を含む正規表現を処理できない可能性があるということです.これらの場合には別のビューを作成する方が良いでしょう(私はオプションのgameパラメータ)または修正できますか?

アップデート

ルートのラッピングブラケットを削除することでなんとか動作させることができました(したがって、読み取りr'^(?P<game>[A-Za-z0-9]+/)?test'、ゲームとして「TestGame /」を渡すことによって-ただし、game.rstrip('/')毎回呼び出す必要があるため、これは理想的ではありません(ただし、ミドルウェアでのみ)) . で終わる名前が予想されるため{% url %}、タグを使用することも困難です。/

誰かがより良い解決策を持っている場合に備えて、これを開いたままにしておきます。

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

django - DjangoのURL以外の場所でHttpResponseRequestにパラメーターを渡す方法

フォームに入力した内容に応じて表示が変化する、それ自体にリダイレクトするフォームを Django でコーディングしようとしています。そのために、バックエンドで POST データを取得し、次のようにメッセージを表示したいと考えています。 問題は、引数{% if message %} {{ message }} {% endif %} を渡す方法です。message

私は私が使用できることを知っています

しかし、それは私の目的には適していないURLにメッセージを表示します。どうすればそれができて、バックエンドに隠れていることができるか知っていますか?

0 投票する
5 に答える
8352 参照

django - Django テスト - リダイレクトするビューのメッセージを確認する

私は自分の django アプリケーションの 1 つのテストを書いていて、かなり長い間この問題を回避しようとしていました。django.contrib.messagesさまざまなケースを使用してメッセージを送信するビューがあります。ビューは次のようになります。

現在、このビューの応答をテストしている間、このビューはリダイレクトを使用するため、を含む辞書が含まclient.getれていません。テンプレートをレンダリングするビューの場合、 を使用してメッセージ リストにアクセスできます。リダイレクトするビューへのアクセスを取得するにはどうすればよいですか?contextmessagesmessages = response.context.get('messages')messages

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

django - アプリ間で django コンテキストを渡す

だから私はDjangoにかなり慣れていないので、いくつかの簡単なWebサイトを作成しています. 現在、他のアプリのいくつかをホストするために使用できる Web サイトを作成しようとしています。現時点では、メイン サイトは名前/URL の辞書をテンプレートに渡すことでナビゲーション バーをレンダリングします。たとえば、これはメイン Web サイトの views.py です。

これにより、ホーム ビューとアプリ リスト ビューの両方に、website.com/、website.com/apps/ へのリンクを含むナビゲーション バーと、google および stackoverflow へのリンクを含む「ドロップダウン」というタイトルのドロップダウンが表示されます。

私の問題は、独自のコンテキスト値を使用して他のテンプレートにレンダリングする独自のビューを持つ別のアプリを作成したことです。たとえば、次のように使用できます。

必要に応じて、"app/response.html" を "website/apprender.html" に置き換える引数を取るようにアプリを切り替えることができます。

ただし、コンテキストにはまだユーザーとコメントのみが含まれ、ナビゲーションバーの情報は含まれません。アプリが追加する入力コンテキストに別の引数を追加する必要があると考えています。

しかし、ベストプラクティスが何であるかを知りたいです。では、ベストプラクティスは何ですか?