gpt4 book ai didi

django - 下一周和上一周使用 Django 1.3 通用 View 周存档

转载 作者:行者123 更新时间:2023-12-02 06:23:06 25 4
gpt4 key购买 nike

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

models.py

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

def __unicode__(self):
return str(self.day)

urls.py

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),
)

最佳答案

您需要两个链接:如果当前周是 33,则上一个应为 32,下一个应为 34。
您可以从 extra_context 字典中的 url 中获取当前星期吗?字典在通用 View 代码本身的 week 变量之后迭代,这意味着您应该可以直接在 urls.py 中访问它(我的怀疑)

网址仅获取数字,但 View 可处理字符串(date_based.py 中的第 201 行):

try:
tt = time.strptime(year+'-0-'+week, '%Y-%w-%U')
date = datetime.date(*tt[:3])
except ValueError:
raise Http404

time.strptime 对字符串进行操作,这意味着我们需要将它们转换为整数,加或减一,并将这些新值保存为额外上下文中的键。因此,我会将以下内容添加到您的 week_info 字典中:

"next_week" : int(week) + 1,
"prev_week" : int(week) - 1,

由于这些链接是其他基于日期的 View 的参数,因此可以将它们保留为整数。然后从新传递的上下文变量构建链接。

希望这有帮助;)

关于django - 下一周和上一周使用 Django 1.3 通用 View 周存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6400626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com