2012-09-19 6 views
1

개체 목록이 있습니다. 후속 개체에 동일한 날짜가 포함 된 경우 첫 번째 고유 날짜 만 표시되도록 이러한 개체를 표시하려고합니다. 날짜가 다를 경우. 다음은 그 예입니다.장고 템플릿에서만 유일한 개체를 표시

데이터 :

  • 번호 : 2 일 "01/01/2010"
  • ID : 3 일 "01/01/2010"
  • ID : 4 일 : "2010년 2월 2일"나는 표시 할 무엇

:

  • ID - 2, "01/01/2010"
  • ID - 3,
  • ID - 4 "2010년 2월 2일는"

이전 날짜가 동일하기 때문에 ID 3 아무것도 보여주지하는 방법을 참조하십시오?

어떻게 이것을 장고 템플릿으로 할 수 있습니까? 제가 시도한 한가지는 맞춤 필터를 만드는 것입니다. 유일한 문제는 제 의견으로는 no-no 인 전역 변수를 사용한다는 것입니다. 함수 필터 나 장고 템플릿 언어의 상태를 이전 값을 염두에두고 유지하려면 어떻게해야합니까? simple_tag를 사용

__author__ = 'Dave' 
#This works but isn't best practice 
from django import template 
register = template.Library() 

a = '' 
@register.filter() 
def ensure_unique(value): 
    global a 
    if a == value: 
     return '' 
    else: 
     a = value 
     return value 

답변

1

나를 상태를 저장하고 내가 필요 정확히 무엇을 달성하기 위해 훨씬 쉽게했다.

from django import template 
register = template.Library() 

@register.simple_tag(takes_context=True) 
def stop_repeat(context, event): 
    """ 
    Finds various types of links embedded in feed text and creates links out of them. 
    """ 
    if event.date: 
     if (event.get_date_time_location(), event.id) in context: 
      return '' 
     else: 
      context[(event.get_date_time_location(), event.id)] = (event.get_date_time_location(), event.id) 
      return event.get_date_time_location() 
관련 문제