我有一个Django模板标签,匹配当前url regexp(如果regexp匹配regexp,我想用它来创建模板中的打印件,在这种情况下,我用它来创建网站菜单中的“active”元素)。
# project/templatetags/tags.py
@register.simple_tag(takes_context=True)
def match_url(context, match):
request = context.get('request')
if not request:
raise Exception
return re.match(match, request.get_full_path())
我希望像这样使用它
{% load tags %}
{% if match_url "^/about" %}
<h1>About page</h1>
{% endif %}
{% if somevar == "asfd" || match_url "^/cat/1" %}
:param: somevar: variable that I passed from view
{% endif %}
我了解{% with blabla as somethink %}
和{% match_url blabla as somethink %}
。我需要它,如上所示,因为在我的情况下它更方便。
答案 0 :(得分:1)
制作一个{% if_match_url "^/about" %}...{% endif %}
模板标签,以满足您的需求。
模板语言是有意限制的,以确保您不会在模板中添加太多魔力。人们会告诉你在视图中而不是模板中执行此操作。