URL с MonthArchiveView дает мне ошибку 404

Я хочу создать сайт (Django 1.8), где я могу выбирать события по дате, именно то, что произошло в данный месяц и год. Я решил использовать универсальный класс MonthArchiveView.

URL на главную страницу передает год и месяц, как и URL - но я получаю ошибку 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:

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 ответ

Решение

Если у вас нет заказов на этот месяц, просмотр архива за месяц вернет 404. Вы можете изменить это поведение, установив allow_empty в True,

class BookingListView(ListView, MonthArchiveView):
    model = models.Booking
    allow_empty = True
    ...
Другие вопросы по тегам