2012-10-12 5 views
0

드롭 다운 메뉴가있는 템플릿이 있습니다. 드롭 다운에는 몇 가지 옵션이 있습니다 (링크 읽기). 그 중 하나가 선택되면 드롭 다운을 강조하고 싶습니다. 이렇게하려면 요청 경로가 드롭 다운 메뉴 옵션 중 하나인지 확인하고 싶습니다.django의 강조 표시 드롭 다운 메뉴

e.e. 드롭 다운 안에 내 링크의 URL의 URL1, URL2, URL2가 있다고, 나는 템플릿에서이 작업을 수행 할 :

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

이 문제에 대한 가장 좋은 방법은 무엇입니까?

+1

[Navigation in django] (http://stackoverflow.com/a/477719/63011). 구현 세부 사항을 보려면이 게시물을보십시오 : [현재 활성 페이지에 대한 Django 템플릿 태그] (http://gnuvince.wordpress.com/2007/09/14/a-django-template-tag-for-the -current-active-page /) –

답변

1

당신은 당신의 simple tag를 작성하고 드롭 다운 강조하는 데 사용할 수 있습니다 :

@register.simple_tag 
def check(url): 
    for elem in url_list: 
     if elem in url: 
      return true 
    return false 

를 다음 템플릿에 적용 :이 같은 필터를 생성 SAMUELE의 답변을 사용

<select {% if check request.get_full_path %}class="highlighted"{% endif %} > 
.... 
</select> 
+0

당신의 아이디어를 사용했지만 simple_tag 대신 필터를 사용했습니다. 감사. – Asterisk

0

:

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