2017-01-30 86 views
0

我正在製作一個簡單的日曆應用程序,可以跟蹤整個學年(8月 - 5月)的事件。我想要做的是有一個檔案視圖,它將允許用戶選擇一個學年,並看到學年的價值。Django年份存檔查看年份?

爲此,我想我會使用Django Class YearArchiveView。問題是,我不知道如何過濾結果,以避免從Jan到Dec結果得到Aug到May。

查看:

class EventArchiveView(YearArchiveView): 
    template_name = "cal/cal_archive.html" 
    queryset = CalEvent.objects.all() 
    date_field = 'start_date' 
    make_object_list = True 
    allow_future = True 

型號:

class CalEvent(Audit): 
    CAL_CHOICES = (
     ('HOLIDAY','Holiday'), 
     ('SECONDARY','Secondary'), 
     ('ELEMENTARY','Elementary'), 
     ('TEACHER','Teacher'), 
     ('TERM','Term'), 
     ('TESTING','Testing'), 
     ('GRAD','Graduation'), 
    ) 
    title = models.CharField(max_length=255) 
    category = models.CharField(max_length=20,choices=CAL_CHOICES,default='HOLIDAY') 
    start_date = models.DateField(help_text="Format: M/D/Y") 
    end_date = models.DateField(blank=True,null=True,help_text="Format: M/D/Y. Not Required. Fill if event will spans multiple days.") 
    week = models.IntegerField() 
    active = models.BooleanField(default=False) 

    def __str__(self): 
     return self.title 

    def cat_verbose(self): 
     return dict(CalEvent.CAL_CHOICES)[self.category] 

    class Meta: 
     verbose_name_plural = "Cal Events" 

回答

0

您可以嘗試使用以下方法

class EventArchiveView(YearArchiveView): 
    template_name = "cal/cal_archive.html" 
    queryset = CalEvent.objects.all() 
    date_field = "start_date" 
    make_object_list = True 
    allow_future = True 

    def _get_current_year(self, date): 
     return date.replace(month=8, day=1) 

    def _get_next_year(self, date): 
     return date.replace(year=date.year+1, month=5, day=1) 
+0

這工作壓倒一切的日期。但是,您如何將列表添加到「-date」? –