2010-05-17 3 views
2

을 장고 - 정렬과 함께 "사용자 정의 필드"에 주석을 달고 난 조금 차단 해요 :장고 내가 장고 응용 프로그램에서 날짜별로 항목을 제시해야

class Event(models.Model): 
    name = models.CharField(max_length=100) 
    theme = models.ForeignKey(Theme) 
    ... 

class Date(models.Model): 
    event = models.ForeignKey(Event) 
    start = models.DateField() 
    end = models.DateField() 

    class Meta: 
     ordering = ['start', 'end'] 
     unique_together = ['event', 'start'] 

I : 가 여기 내 모델의 예 데이터베이스의 모든 이벤트를 가져 오는보기가 있습니다. Event.objects.all()

그런 다음 템플릿에서 날짜와 같은 테마 및 기타 항목이 포함 된 이벤트 목록을 표시합니다. 나는이 목록의 첫 번째 "미래"날짜를 보여 드리고자합니다 , 즉 이벤트 모델에 사용자 지정 방법으로 쉽게 :

def get_first_future_date(self): 
    today = datetime.datetime.now() 
    dates = self.date_set.filter(end__gte=today) 
    if dates: 
     return dates[0] 

에있어서, 상기 제 1 미래의 날짜 또는 완료되지 않은 가장 오래된 날짜를 그.
Here's the problem : I would like to show that field in my template and be able to sort it with django-sorting.

장고 - 정렬 ... 용도는 {% 앵커, 인수 %가} 그것을 할하지만 난 그것에 해당 필드를 관리하는 방법을 모른다 당신은 어떻게 할 것 ???

답장을 미리 보내 주셔서 감사합니다.

+0

나는 같은 상황에 처해있다. 이것을위한 해결책을 찾았습니까? – Konstant

답변

0

get_first_future_date이 이벤트의 단 하나의 인스턴스를 반환 할 때 end 필드로 쿼리 세트를 정렬하는 이유는 무엇입니까? 그것은 당신이 요구 한 것을

음, 장고 - 정렬 사용한 적이 없으니까,하지만 난 템플릿

{% load sorting_tags %} 
{% autosort events %} 
<thead> 
    <th>{% anchor start Starting at %}</th> 
    <th>{% anchor end Ending at %}</th> 
    ... 
</thead> 
{% for event in events %} 
<tr> 
    <td>{{event.start}}</td> 
    ... 
</tr> 
{% endfor %} 

에서

events = Event.objects.all() # or filter(...) 
# pass events to the template context 

다음 할 것이라고 생각인가?