Я использую Django «WeekArchiveView» для отображения экземпляров моей модели Appointment по неделям. The View выглядит следующим образом:Django WeekArchiveView: начинаются ссылки на 1
class AppointmentWeekArchiveView(WeekArchiveView):
queryset = Appointment.objects.all().order_by('start_date')
date_field = "start_date"
make_object_list = True
allow_future = True
allow_empty = True
week_format = '%W'
Я поставил week_format, чтобы начать недели в понедельник. Соответствующая запись в urls.py выглядит следующим образом:
url(r'^(?P<year>\d{4})/week/(?P<week>\d+)$',
views.AppointmentWeekArchiveView.as_view(),
name="appointment_week")
Все работает хорошо, за исключением одной проблемы: Первая неделя года находится в папке/2013/неделю/0, которые я нахожу в заблуждение в этом контексте ,
Есть ли способ, чтобы они начинались с 1, так что я имел согласованность между URL-адресом недели и выходом, например. {{ week | date:'W' }}
?
В этой документации не найдено никаких пояснений к этому вопросу.
Я только что понял, что в течение некоторых других лет (например, 2012) URL-адреса фактически соответствуют номеру недели. Я попытался реализации следующей/предыдущей неделе ссылки, как следующее:
{% url 'appointments:appointment_week' previous_week|date:'Y' previous_week|date:'W' %}
и
{% url 'appointments:appointment_week' next_week|date:'Y' next_week|date:'W' %}
Они также не в 2013 году, но работа для, например, 2012. Переменные previous_week
и next_week
предоставляются классом View и указывают на (правильный) первый день следующей/предыдущей недели.
Что вы подразумеваете под тем, что генерирует/2013/неделя/0? неделя/0 возвращает правильный вид на первую неделю 2013 года, начиная с 31 декабря 2012 года, что является правильным. – feob
Я имею в виду, что где-то вы должны генерировать URL-адреса, чтобы указать на ваш просмотр. Обычно с '{% url ...%}' или 'reverse'. –
На данный момент у меня есть только привязка к определенной неделе. Позже он всегда должен указывать на текущую неделю. Я попытался реализовать следующую/предыдущую неделю в представлении. Я соответствующим образом обновил этот вопрос. – feob