2009-08-16 31 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