下一周和上一周使用Django 1.3通用视图周存档

下一周和上一周使用Django 1.3通用视图周存档,django,django-views,Django,Django Views,我是Django的新手,我想知道如何使用week archive通用视图在我的模板中获取下一周和上一周的链接。对于archive_month常规视图,模板上下文中有一个next_month和previous_month对象,但对于archive_week常规视图则没有 型号.py class Day(models.Model): day = models.AutoField(primary_key=True) date = models.DateField() description = mod

我是Django的新手,我想知道如何使用week archive通用视图在我的模板中获取下一周和上一周的链接。对于archive_month常规视图,模板上下文中有一个next_month和previous_month对象,但对于archive_week常规视图则没有

型号.py

class Day(models.Model):
day = models.AutoField(primary_key=True)
date = models.DateField()
description = models.TextField()

def __unicode__(self):
    return str(self.day)
week_info = {
"queryset" : Day.objects.order_by('-date'),
"date_field" : "date",
}

urlpatterns = patterns('journal.views',
(r'^(?P<year>\d{4})/(?P<week>\d{2})/$', date_based.archive_week, week_info),
)
url.py

class Day(models.Model):
day = models.AutoField(primary_key=True)
date = models.DateField()
description = models.TextField()

def __unicode__(self):
    return str(self.day)
week_info = {
"queryset" : Day.objects.order_by('-date'),
"date_field" : "date",
}

urlpatterns = patterns('journal.views',
(r'^(?P<year>\d{4})/(?P<week>\d{2})/$', date_based.archive_week, week_info),
)
周信息={
“queryset”:Day.objects.order_by('-date'),
“日期字段”:“日期”,
}
urlpatterns=模式('journal.views',
(r'^(?P\d{4})/(?P\d{2})/$”,基于日期的存档,周,周信息),
)

您需要两个链接:如果本周为33,则上一周应为32,下一周为34。
你能从extra_上下文字典中的url抓取当前一周吗?字典在泛型视图代码本身中的week变量之后进行迭代,这意味着您应该可以在URL.py中直接访问它(我的怀疑)

url只获取数字,但视图使用字符串(date_-based.py中的第201行):

time.strtime
对字符串进行操作,这意味着我们需要将它们转换为整数,加上或减去一个,并将这些新值保存为额外上下文中的键。因此,我将在您的周信息记录中添加以下内容:

"next_week" : int(week) + 1,
"prev_week" : int(week) - 1,
因为这些链接是其他基于日期的视图的参数,所以可以将它们保留为整数。然后从新传递的上下文变量构建链接

希望这有帮助;)

您可以使用r设置年份和周数的格式,并使用它获取下一周和上一周的链接:

{% if previous_week %}
  {% with prev_week_year|date:"Y" prev_week=previous_week|date:"W" %}
    <a href="{% url <NAME_OF_YOUR_VIEW> prev_week_year prev_week %}">
      See Previous Week</a>
  {% endwith %}
{% endif %}
{% if previous_week and next_week %} | {% endif %}
{% if next_week %}
  {% with next_week_year|date:"Y" next_week=next_week|date:"W" %}
    <a href="{% url <NAME_OF_YOUR_VIEW> next_week_year next_week %}">
      See Next Week</a>
  {% endwith %}
{% endif %}
{%if前一周%}
{上一周|年|日期为:Y上一周=上一周|日期为:W%}
{%endwith%}
{%endif%}
{%if前一周和下一周%}{%endif%}
{%if下周%}
{下一周|年|日期:Y下一周=下一周|日期:W”}
{%endwith%}
{%endif%}
您还需要命名视图

别忘了将Django升级到更新(更安全)的版本