突出显示django中的下拉菜单

时间:2012-10-12 08:57:47

标签: python django

我有一个带下拉菜单的模板。下拉列表包含几个选项(读取链接)。当选择其中一个时,我希望突出显示下拉列表。为此,我想检查请求路径是否是下拉菜单选项之一。

即。说我在下拉列表中的链接有url url1,url2,url2,我想在模板中执行此操作:

{% if request.path in [url1, url2, url3] %}
    highlight dropdown menu
{% endif %}

解决问题的最佳方法是什么?

2 个答案:

答案 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 %}