2009-08-16 76 views
1

即時通訊需要使用日曆,即時通訊開發一個網站房子的租金,我的第一個自己的網站項目,所以,這個想法是,用戶選擇一個初始日期和完成日期,在同一個月任何月份(形成一月至四月por例子),並在房子可用性的視圖(模板)我想顯示所有月份(12)和哪裏是忙碌的房子生病顯示當天的一些不同的顏色...Django,日曆

IM搜索Django的日曆,即時通訊測試,但如果有人知道這件事情,請給我一個手:)

謝謝:)

回答

2

這是overiding HTMLCalendar一個例子顯示查詢集:

class QuerysetCalendar(HTMLCalendar): 

    def __init__(self, queryset, field): 
     self.field = field 
     super(QuerysetCalendar, self).__init__() 
     self.queryset_by_date = self.group_by_day(queryset) 

    def formatday(self, day, weekday): 
     if day != 0: 
      cssclass = self.cssclasses[weekday] 
      if date.today() == date(self.year, self.month, day): 
       cssclass += ' today' 
      if day in self.queryset_by_date: 
       cssclass += ' filled' 
       body = ['<ul>'] 

       for item in self.queryset_by_date[day]: 
        body.append('<li>') 
        body.append('<a href="%s">' % item.get_absolute_url()) 
        body.append(esc(item)) 
        body.append('</a></li>') 
       body.append('</ul>') 
       return self.day_cell(cssclass, '%d %s' % (day, ''.join(body))) 
      return self.day_cell(cssclass, day) 
     return self.day_cell('noday', ' ') 


    def formatmonth(self, year, month): 
     self.year, self.month = year, month 
     return super(QuerysetCalendar, self).formatmonth(year, month) 

    def group_by_day(self, queryset): 
     field = lambda item: getattr(item, self.field).day 
     return dict(
      [(day, list(items)) for day, items in groupby(queryset, field)] 
     ) 

    def day_cell(self, cssclass, body): 
     return '<td class="%s">%s</td>' % (cssclass, body) 
+3

那麼,這是從叫什麼?不是模板,因爲它不能執行Python代碼。風景?可能是,但所有這些格式似乎是一個壞主意的觀點。你有一個自定義的模板標籤? 無論如何,您應該清楚您應該如何使用它。 – hughdbrown 2009-08-17 16:13:46