2014-06-15 46 views
0

我有一個Django模板標記,它與當前url匹配regexp(如果regexp匹配regexp,我想用它在模板中創建打印件,在這種情況下,我用它在站點菜單中創建「活動」元素)。將標記作爲變量用於在Django中的if :: else模板

# 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 %}。我需要它,正如我上面所示,因爲這對我來說更方便。

回答

1

製作一個{% if_match_url "^/about" %}...{% endif %}模板標籤,它可以做你想做的。

模板語言有意限制,以確保您不會在模板中放置太多魔法。人們會告訴你在視圖中而不是模板中做這些東西。

+0

+1 !!!模板用於顯示數據,而不用於處理數據 –