我有一个带下拉菜单的模板。下拉列表包含几个选项(读取链接)。当选择其中一个时,我希望突出显示下拉列表。为此,我想检查请求路径是否是下拉菜单选项之一。
即。说我在下拉列表中的链接有url url1,url2,url2,我想在模板中执行此操作:
{% if request.path in [url1, url2, url3] %}
highlight dropdown menu
{% endif %}
解决问题的最佳方法是什么?
答案 0 :(得分:1)
您可以创建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>
答案 1 :(得分:0)
使用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 %}