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

2021-10-17 17:16:09 发布

您现在位置: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。但是对于我拥有的每一种方法,我真的需要手动完成吗?任何建议都会有帮助!你知道吗