【问题标题】:Django TodayArchiveView showing the date for next dayDjango TodayArchiveView 显示第二天的日期
【发布时间】: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 有效,但这是正确的方法吗?如果用户在欧洲,他会得到正确的时区吗?

标签: django django-forms django-templates django-views django-class-based-views


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-02-04
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多