我应该如何在djang中使用本地时间设置来呈现timezoneaware模型字段

2024-04-24 01:17:38 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下代码

# settings.py in a proper location
...
TIME_ZONE = 'Asia/Seoul'
USE_TZ = True


# models.py in a proper location
class Post(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    def created_formatted(self):
        return self.created.strftime("%Y/%m/%d %H:%M")

然后,我将下面的django模板呈现为html

before formatting: {{ a_post.created }}  # localtime
after formatting: {{ a_post.created_formatted }}  # not localtime

我希望{{ a_post.created }}{{ a_post.created_formatted }}具有相同的时区,但它们没有。我试图找出{{ a_post.created }}是如何呈现到localtime的,但我还不确定django代码的哪一部分是正确的查找位置。(如果您让我知道django源代码要查找的正确部分,这将非常有帮助)。在我找到了在django模板中如何呈现datetime之后,我想将同样的想法应用到我创建的格式化的\。你知道吗

另外,我知道how to convert timezone-aware datetime to local time in Python。但是对于我拥有的每一种方法,我真的需要手动完成吗?任何建议都会有帮助!你知道吗


Tags: django代码inpyself模板truemodels
1条回答
网友
1楼 · 发布于 2024-04-24 01:17:38

从文件中

{% load tz %}

{% localtime on %}
    {{ value }}
{% endlocaltime %}

{% localtime off %}
   {{ value }}
{% endlocaltime %}

如果你需要特定的时区

{% load tz %}

{% timezone "Europe/Paris" %}
    Paris time: {{ value }}
{% endtimezone %}

{% timezone None %}
    Server time: {{ value }}
{% endtimezone %}

localtime的文档, timezone的文档

相关问题 更多 >