Python 在django中突出显示下拉菜单

Python 在django中突出显示下拉菜单,python,django,Python,Django,我有一个带有下拉菜单的模板。下拉列表包含多个选项(读取链接)。当其中一个被选中时,我希望下拉列表高亮显示。为此,我想检查请求路径是否是下拉菜单选项之一 也就是说,我在下拉列表中的链接有URL url1、url2、url2,我想在模板中这样做: {% if request.path in [url1, url2, url3] %} highlight dropdown menu {% endif %} <select {% if check request.get_full_pat

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

也就是说,我在下拉列表中的链接有URL url1、url2、url2,我想在模板中这样做:

{% if request.path in [url1, url2, url3] %}
    highlight dropdown menu
{% endif %}
<select {% if check request.get_full_path %}class="highlighted"{% endif %} >
....
</select>
解决问题的最佳方法是什么?

您可以创建您的解决方案,并使用它突出显示下拉列表:

@register.simple_tag
def check(url):
    for elem in url_list:
        if elem in url:
            return true
    return false
然后将其应用于模板:

{% if request.path in [url1, url2, url3] %}
    highlight dropdown menu
{% endif %}
<select {% if check request.get_full_path %}class="highlighted"{% endif %} >
....
</select>

....

根据萨缪尔的回答,我创建了一个如下过滤器:

@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 %}

这非常接近:。看看这篇文章的实现细节:我使用了你的想法,但是我使用了一个过滤器,而不是简单的标签。谢谢