是否可以在不使用javascript的情况下识别django模板URL?
例如,我想在twitter bootstrap中为某个标签或药丸修改css类为“active”。
答案 0 :(得分:1)
如果您在上下文中提供了request
,那么您可以在模板中使用request.path来了解网址,并根据该网址制作css类active
或inactive
。
您需要在项目设置中的django.core.context_processors.request
中添加TEMPLATE_CONTEXT_PROCESSORS
。
或者只是在请求上下文中传递page_name
并使用它。
正如arie
指出:检查django-activelink基本上似乎使用了我提到的相同的上述方法,但它在顶部添加了一些模板标记。
答案 1 :(得分:0)
是的,你可以这样做,但结果模板代码将有点难以阅读。在模板中添加大量逻辑可以减少/消除MVC的关注点分离优势。
您需要做的是将请求信息传递给模板,最简单的方法是添加模板上下文处理器。在settings.py中加入类似的东西:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS += (
'django.core.context_processors.request',
)
然后,您可以访问模板中的request.path信息,并构建逻辑以根据您的需要更改输出。