javascriptなしでdjangoテンプレートのURLを認識させることは可能ですか?
たとえば、Twitter ブートストラップの特定のタブまたはピルの css クラスを「アクティブ」に変更したいと考えています。
javascriptなしでdjangoテンプレートのURLを認識させることは可能ですか?
たとえば、Twitter ブートストラップの特定のタブまたはピルの css クラスを「アクティブ」に変更したいと考えています。
request
コンテキストで利用できる場合は、テンプレート内でrequest.pathを使用して URL を知り、css クラスを作成するか、active
それinactive
に基づいて作成できます。プロジェクト設定に追加django.core.context_processors.request
する必要があります。TEMPLATE_CONTEXT_PROCESSORS
page_name
または、リクエスト コンテキストにa を渡して、それを使用します。
arie
指摘したように、 django-activelinkを確認してください。これは、基本的に上記と同じアプローチを使用しているように見えますが、上にいくつかのテンプレート タグが追加されています。
はい、できますが、結果のテンプレート コードは少し読みにくくなります。テンプレートに多くのロジックを追加すると、MVC の関心の分離の利点が減少/削除されます。
必要なことは、リクエスト情報をテンプレートに渡すことです。これを行う最も簡単な方法は、テンプレート コンテキスト プロセッサを追加することです。あなたのsettings.pyに次のようなものを入れてください:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS += (
'django.core.context_processors.request',
)
その後、テンプレートの request.path 情報にアクセスし、必要に応じて出力を変更するロジックを構築できます。