Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django模板-是否可以创建url感知模板_Django_Django Templates - Fatal编程技术网

Django模板-是否可以创建url感知模板

Django模板-是否可以创建url感知模板,django,django-templates,Django,Django Templates,是否可以在没有javascript的情况下使django模板URL感知 例如,我想将twitter引导中的某个选项卡或药丸的css类修改为“活动”。如果上下文中有可用的请求,那么您可以在模板中使用它来了解url,并在此基础上使css类处于活动状态或处于非活动状态。 您需要在项目设置中的TEMPLATE\u context\u processors中添加django.core.context\u processors.request 或者,只需在请求上下文中传递一个页面名称,然后使用它 正如ari

是否可以在没有javascript的情况下使django模板URL感知


例如,我想将twitter引导中的某个选项卡或药丸的css类修改为“活动”。

如果上下文中有可用的
请求
,那么您可以在模板中使用它来了解url,并在此基础上使css类
处于活动状态
处于非活动状态
。 您需要在项目设置中的
TEMPLATE\u context\u processors
中添加
django.core.context\u processors.request

或者,只需在请求上下文中传递一个
页面名称
,然后使用它


正如
arie
所指出的:检查基本上似乎使用了与我提到的相同的上述方法,但它在顶部添加了一些模板标记。

是的,您可以这样做,但生成的模板代码将有点难以阅读。向模板添加大量逻辑可以减少/消除MVC的关注点分离优势

您需要做的是将请求信息传递给模板,最简单的方法是添加模板上下文处理器。在settings.py中放入类似的内容:

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS

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

然后,您可以访问模板中的request.path信息,并根据需要构造逻辑来更改输出。

我问了一个类似的问题,选择的答案提供了示例代码:。我希望这有帮助!谢谢我也曾考虑过@Aamir Adnan的答案,但我想让它变得更加有力。这是一个小应用程序,所以如果我需要使用模板处理器的话,MVC的模糊是可以容忍的。我和Aamir有相同的答案,但他快了一点。:)我的意思是通过请求上下文传递页面。我要测试一下,接受他的答案,因为这是第一次。再次感谢!你可以看看哪个基本上似乎使用了这种方法,并在顶部添加了一些模板标记。@arie感谢评论中的提示+1,我可以在实际答案中添加这个以供将来参考吗?