带有MonthArchiveView的网址给我错误404

时间:2017-08-29 08:37:44

标签: python django date url django-class-based-views

我想创建一个网站(Django 1.8),我可以按日期选择事件,确切地说是在给定的月份和年份中发生的事件。 我决定使用泛型类MonthArchiveView。

主页的网址传递年份和月份,网址也是如此 - 但我收到404错误

我的观点:

class BookingListView(ListView, MonthArchiveView):
    model = models.Booking
    queryset = models.Booking.objects.order_by('-date_start')
    paginate_by = 80
    template_name = 'events/archive_list.html'
    context_object_name = 'object_list'
    date_field = 'date_start'
    allow_future = True

    def get_context_data(self, **kwargs):
        context = super(BookingListView, self).get_context_data(**kwargs)
        context['mode'] = 'archive'
        return context

我的网址:

url(r'^(?P<year>[0-9]{4})/(?P<month>\d{2})/$', views.BookingListView.as_view(), name="list"),

我的参数硬编码链接):

<a href="{% url 'archive:list' 2017 09 %}" title="{% trans 'Archive' %}">
{% trans 'Archive' %}#}
</a>

1 个答案:

答案 0 :(得分:1)

如果您没有该月的任何预订,则月份归档视图将返回404.您可以通过将allow_empty设置为True来更改此行为。

class BookingListView(ListView, MonthArchiveView):
    model = models.Booking
    allow_empty = True
    ...