Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何扩展Django通用年度归档视图?_Django_Datetime_View_Django Generic Views - Fatal编程技术网

如何扩展Django通用年度归档视图?

如何扩展Django通用年度归档视图?,django,datetime,view,django-generic-views,Django,Datetime,View,Django Generic Views,我使用Django的通用年度归档视图按年度显示事件对象。这可能是最好的方法,也可能不是,因为我发现Django将对象列表限制在过去的年份;我的日期范围从当前年份一直到下一个年份 以下是我的看法: class VisitingScholarsYearView(YearArchiveView): allow_empty = True allow_future = True date_field = 'event_date' template_name = "even

我使用Django的通用年度归档视图按年度显示事件对象。这可能是最好的方法,也可能不是,因为我发现Django将对象列表限制在过去的年份;我的日期范围从当前年份一直到下一个年份

以下是我的看法:

class VisitingScholarsYearView(YearArchiveView):

    allow_empty = True
    allow_future = True
    date_field = 'event_date'
    template_name = "events/dvs_test.html"
    context_object_name = 'event_list'
    make_object_list = True

    def get_queryset(self):
            return Event.school_year_events.from_year(self.get_year()).filter(event_type__title='Distinguished Visiting Scholars Series')
下面是我的模型上的管理器(一个带有名为Event\u date的日期字段的事件对象):

最后,我的视图url:

url(r'^distinguished-visiting-scholars-series/(?P<year>\d{4})/$', VisitingScholarsYearView.as_view()),
url(r'^杰出访问学者系列/(?P\d{4})/$”,访问scholarsyearview.as_view()),
当我点击API时,我得到了我期望的事件。但是YearArchiveView似乎将返回的事件限制在我给出的年份;这也是意料之中的,但我希望它涵盖我在《经理》中提到的范围(即7月1日至6月30日)


我怎样才能改变这种行为?或者我应该尝试不同的视图(ListView)

我认为您不应该使用
YearArchiveView
作为基础-获取该日期的对象有太多内置逻辑

相反,将
ListView
YearMixin
一起使用:

class VisitingScholarsYearView(YearMixin, ListView):

我认为您不应该使用
YearArchiveView
作为基础,因为获取该日期的对象有太多的内置逻辑

相反,将
ListView
YearMixin
一起使用:

class VisitingScholarsYearView(YearMixin, ListView):

YearMixin是有道理的,但是我从BaseDetailView得到了什么?我没有一个slug或object主键可以调用。这看起来怎么样?是的,我也知道了。效果很好。谢谢YearMixin是有道理的,但是我从BaseDetailView得到了什么?我没有一个slug或object主键可以调用。这看起来怎么样?是的,我也知道了。效果很好。谢谢