0

javascriptなしでdjangoテンプレートのURLを認識させることは可能ですか?

たとえば、Twitter ブートストラップの特定のタブまたはピルの css クラスを「アクティブ」に変更したいと考えています。

4

2 に答える 2

1

requestコンテキストで利用できる場合は、テンプレート内でrequest.pathを使用して URL を知り、css クラスを作成するか、activeそれinactiveに基づいて作成できます。プロジェクト設定に追加django.core.context_processors.requestする必要があります。TEMPLATE_CONTEXT_PROCESSORS

page_nameまたは、リクエスト コンテキストにa を渡して、それを使用します。

arie指摘したように、 django-activelinkを確認してください。これは、基本的に上記と同じアプローチを使用しているように見えますが、上にいくつかのテンプレート タグが追加されています。

于 2013-01-05T10:42:41.887 に答える
0

はい、できますが、結果のテンプレート コードは少し読みにくくなります。テンプレートに多くのロジックを追加すると、MVC の関心の分離の利点が減少/削除されます。

必要なことは、リクエスト情報をテンプレートに渡すことです。これを行う最も簡単な方法は、テンプレート コンテキスト プロセッサを追加することです。あなたのsettings.pyに次のようなものを入れてください:

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS

TEMPLATE_CONTEXT_PROCESSORS += (
    'django.core.context_processors.request',
)

その後、テンプレートの request.path 情報にアクセスし、必要に応じて出力を変更するロジックを構築できます。

于 2013-01-05T10:46:51.337 に答える