我有一个下拉菜单模板。下拉菜单包含几个选项(阅读链接)。当选择其中一个时,我希望突出显示下拉框。要做到这一点,我想检查请求路径是否是下拉菜单选项之一。突出显示下拉菜单在Django
I.e.说我的下拉菜单中的链接有网址为url1,url2 url2和我想这样做模板:
{% if request.path in [url1, url2, url3] %}
highlight dropdown menu
{% endif %}
什么是解决问题的最好方法?
我有一个下拉菜单模板。下拉菜单包含几个选项(阅读链接)。当选择其中一个时,我希望突出显示下拉框。要做到这一点,我想检查请求路径是否是下拉菜单选项之一。突出显示下拉菜单在Django
I.e.说我的下拉菜单中的链接有网址为url1,url2 url2和我想这样做模板:
{% if request.path in [url1, url2, url3] %}
highlight dropdown menu
{% endif %}
什么是解决问题的最好方法?
您可以创建simple tag,并用它来突出下拉:
@register.simple_tag
def check(url):
for elem in url_list:
if elem in url:
return true
return false
,然后将其应用到您的模板:
<select {% if check request.get_full_path %}class="highlighted"{% endif %} >
....
</select>
我用你的想法,而不是simple_tag我使用了一个过滤器。谢谢。 – Asterisk
使用Samuele的答案,我创建了这样一个过滤器:
@register.filter
def check(url, url_list, delimeter=","):
url_list = url_list.split(delimeter)
for item in url_list:
if url in item:
return True
return False
然后在我的模板中,我使用下面的代码:
{% if request.path|check:"url1,url2" %}
# here goes the html code
{% endif %}
这是非常接近:[在django中导航](http://stackoverflow.com/a/477719/63011)。看看这篇文章的实现细节:[当前活动页面的Django模板标签](http://gnuvince.wordpress.com/2007/09/14/a-django-template-tag-for-the -current-active-page /) –