2012-05-22 2 views
1
def avail_times(request, club_id): 
    club = get_object_or_404(Club,pk=club_id) 
    open_slots = Opening.objects.filter(club_id=club_id, day=datetime.date.today(), reservation ='Open') 
    return render_to_response('reserve/templates/avail_times.html', {'club':club, 'open_slots':open_slots}) 


<ul> 
{% for slot in open_slots %} 
    <li> {{slot }} on Court {{slot.court}} </li> 
{% endfor %} 
</ul> 


from django.db import models 
import datetime 

class Club(models.Model): 
    establishment = models.CharField(max_length=200) 
    address = models.CharField(max_length=200) 
    def __unicode__(self): 
     return self.establishment 

class Day(models.Model): 
    club = models.ForeignKey(Club) 
    day = models.DateField('day') 
    def __unicode__(self): 
     return unicode(self.day) 

class Court(models.Model): 
    club = models.ForeignKey(Club) 
    day = models.ForeignKey(Day) 
    court = models.IntegerField(max_length=200) 
    def __unicode__(self): 
     return unicode(self.court) 

class Opening(models.Model): 
    club = models.ForeignKey(Club) 
    day = models.DateField('date') 
    court = models.ForeignKey(Court) 
    slot = models.TimeField('slot') 
    reservation = models.CharField(max_length=200) 
    def __unicode__(self): 
     return unicode(self.slot) 

위의 템플릿에서는 뚜렷한 "슬롯"시간 만 보여주고 싶습니다. 그래서 6am이 "court 1"과 "court 2"둘 다에서 발생하더라도 템플릿을 통해 한 번만 표시하고 싶습니다. 어떻게 나야?장고 템플릿의 목록에서 다른 값만 어떻게 표시합니까?

답변

6

내장 된 regroup 필터가 정확하게 이것을 수행합니다.

관련 문제