Django TodayArchiveView 显示第二天的日期

Posted

技术标签:

【中文标题】Django TodayArchiveView 显示第二天的日期【英文标题】:Django TodayArchiveView showing the date for next day 【发布时间】:2014-03-15 00:23:20 【问题描述】:

我只是按照 django 网站上的说明进行操作 https://docs.djangoproject.com/en/dev/ref/class-based-views/generic-date-based/ DayArchiveView 正在工作,TodayArchiveView 正在显示第二天的日期。我的时间有 3 小时的差异,所以当我只能在晚上 9 点看到差异时,很难调试它。

我有 USE_TZ = True,并安装了 pytz。我可以做 % load tz % value|localtime

【问题讨论】:

很可能是您的时区设置与当前时区不同的问题。 你能举例说明如何解决它吗?或解决方案的链接?我有 USE_TZ = True,并安装了 pytz。我可以做 % load tz % value|localime 不要认为它发生在模板层。 TIMEZONE 在你的settings.py 中设置什么?尝试改变它。 我将其更改为 TIME_ZONE = 'America/Los_Angeles' 并且 TodayArchiveView 有效,但这是正确的方法吗?如果用户在欧洲,他会得到正确的时区吗? 【参考方案1】:

从您的 cmets 看来,更改您的 settings.TIME_ZONE 似乎解决了问题。您还想知道如何确保您网站的访问者获得他们当天的档案。这在 Django 文档中解释为 default timezone and current timezone 和下一节中的区别。

简而言之,TodayArchiveView 将为所有用户显示属于同一日期的条目。此日期是基于您的settings.TIME_ZONE 的当前日期。这是您希望在大多数网站上看到的内容。例如您在您的时区有一篇 2 月 17 日的文章,但访问者来自一个已经是 2 月 18 日的时区。即使该文章是在不到 24 小时前发布的,他们也无法在 TodayArchiveView 中看到该文章!大多数论坛或博客在其服务器时间和日期内工作。

正如文档解释的那样,视图和模板中可能会转换为最终用户的时区,但如果在模型层完成,则会令人困惑。

【讨论】:

以上是关于Django TodayArchiveView 显示第二天的日期的主要内容,如果未能解决你的问题,请参考以下文章

Django1.10 错误:django.contrib.contenttypes.models.ContentType 未声明显式 app_label 且不在 INSTALLED_APPS 中的应用

RuntimeError:模型类 django.contrib.sites.models.Site 未声明显式 app_label 且不在 INSTALLED_APPS 中的应用程序中

ContentType 未声明显式 app_label

RuntimeError:模型类 xxx 未声明显式 app_label 且不在 INSTALLED_APPS 中的应用程序中

shell 中的错误:未声明显式 app_label 且不在 INSTALLED_APPS 中的应用程序中

django简介