是否可以在没有 javascript 的情况下使 django 模板 URL 感知?
例如,我想将 twitter bootstrap 中某个选项卡或药丸的 css 类修改为“活动”。
是否可以在没有 javascript 的情况下使 django 模板 URL 感知?
例如,我想将 twitter bootstrap 中某个选项卡或药丸的 css 类修改为“活动”。
如果您request
在上下文中可用,那么您可以在模板中使用request.path来了解 url 并制作 css 类active
或inactive
基于它。您需要添加django.core.context_processors.request
您TEMPLATE_CONTEXT_PROCESSORS
的项目设置。
或者,只需传递一个page_name
请求上下文并使用它。
正如所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 信息并构建逻辑以根据您的需要更改输出。