1

Im trying to create a definition for django admin list_display, but the date filter is not timezone aware. If I just have the updated_date field in list_display, the time is correct.

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'))

The output is: Bob Bobson - 26.02.2014 18:27 (one hour off)

The output from just the updated_date is: 26. februar 2014 19:27 (correct)

Anyone know how to make defaultfilters.date timezone aware?

Edit:

My settings:

TIME_ZONE = 'Europe/Oslo'
USE_I18N = True
USE_L10N = True
USE_TZ = True

Edit2:

pytz==2013.9 Django==1.6.2

Edit 3:

Tried this

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"))

But I get this error: unbound method format() must be called with DateFormat instance as first argument (got datetime instance instead)

Edit 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'))

Gives this output: Bob Bobsen - th23+0100RCET_onsPMCETFebruarCET0FebFebruar_februar+0100RFebPMCET

Tomas Jacobsen
  • 2,368
  • 6
  • 37
  • 81

0 Answers0