Python Django Admin未显示自定义方法返回的正确时区值
在我的模型中有一个表字段,它是一个将tz感知的日期时间存储为UTC的字段,以及一个在另一个tz中表示日期时间的方法,如下所示-- 我的管理员有-- 我认为应该在管理界面中显示日期时间的ET版本,但我仍然在管理界面中显示UTC。我尝试从开始时间值中删除默认值,但这没有改变任何东西。我不确定我是否遗漏了一些关于这是如何工作的,或者这是否只适用于真/假值(如Django教程中所述)。是的,TZ设置是在settings.py中设置的,所以这不是问题。我在谷歌上搜索了一下,但没有发现以前是否有人遇到过类似的问题,也没有找到解决方法Python Django Admin未显示自定义方法返回的正确时区值,python,django,datetime,django-models,django-admin,Python,Django,Datetime,Django Models,Django Admin,在我的模型中有一个表字段,它是一个将tz感知的日期时间存储为UTC的字段,以及一个在另一个tz中表示日期时间的方法,如下所示-- 我的管理员有-- 我认为应该在管理界面中显示日期时间的ET版本,但我仍然在管理界面中显示UTC。我尝试从开始时间值中删除默认值,但这没有改变任何东西。我不确定我是否遗漏了一些关于这是如何工作的,或者这是否只适用于真/假值(如Django教程中所述)。是的,TZ设置是在settings.py中设置的,所以这不是问题。我在谷歌上搜索了一下,但没有发现以前是否有人遇到过类似
我在Ubuntu 16.04上使用Django 1.11.x和Python 3.5.2。我猜管理员会将日期标准化为您的时区。尝试从
start\u time\u as\u et
返回字符串,而不是datetime对象
from django.db import models
import datetime
import pytz
class Game(models.Model):
start_time = models.DateTimeField(default=datetime.datetime.utcnow,
blank=True,null=True)
def start_time_as_et(self):
'''returns start_time as ET, not as UTC'''
eastern = pytz.timezone('US/Eastern')
return self.start_time.astimezone(eastern)
from django.contrib import admin
from g.models import Game
class GameAdmin(admin.ModelAdmin):
list_display = ('start_time_as_et',)