Python Django Admin未显示自定义方法返回的正确时区值

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中设置的,所以这不是问题。我在谷歌上搜索了一下,但没有发现以前是否有人遇到过类似

在我的模型中有一个表字段,它是一个将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',)