我试图为 django admin list_display 创建一个定义,但日期过滤器不知道时区。如果我只有updated_date
list_display 中的字段,则时间是正确的。
def get_edited_by(self):
return u"%s %s - %s" % (self.edited_by.first_name, self.edited_by.last_name,
defaultfilters.date(self.updated_date, 'SHORT_DATETIME_FORMAT'))
输出为:(Bob Bobson - 26.02.2014 18:27
休息一小时)
的输出updated_date
是:(26. februar 2014 19:27
正确)
任何人都知道如何让defaultfilters.date
时区知道?
编辑:
我的设置:
TIME_ZONE = 'Europe/Oslo'
USE_I18N = True
USE_L10N = True
USE_TZ = True
编辑2:
pytz==2013.9
Django==1.6.2
编辑3:
试过这个
from django.utils.dateformat import DateFormat
def get_edited_by(self):
return u"%s %s - %s" % (self.edited_by.first_name, self.edited_by.last_name, DateFormat.format(self.updated_date, "SHORT_DATETIME_FORMAT"))
但我得到这个错误:unbound method format() must be called with DateFormat instance as first argument (got datetime instance instead)
编辑4:
from django.utils import date format
def get_edited_by(self):
return u"%s %s - %s" % (self.edited_by.first_name, self.edited_by.last_name, dateformat.format(self.updated_date, 'SHORT_DATETIME_FORMAT'))
给出这个输出:Bob Bobsen - th23+0100RCET_onsPMCETFebruarCET0FebFebruar_februar+0100RFebPMCET