1

我试图为 django admin list_display 创建一个定义,但日期过滤器不知道时区。如果我只有updated_datelist_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

4

0 回答 0