我使用 Django“WeekArchiveView”按周显示我的 Appointment 模型的实例。视图如下所示:
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/week/0,我在这种情况下感到困惑。
有没有办法让它们从 1 开始,以便我在一周的 url 和输出之间保持一致,例如{{ week | date:'W' }}
?
我没有在文档中找到有关此行为的任何提示。
我刚刚意识到,对于其他几年(例如 2012 年),网址实际上与周数匹配。我尝试实现下一周/上一周的链接,如下所示:
{% 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 类提供,并指向下一周/上一周的(正确)第一天。