2016-02-17 4 views
1

Я использую ajax для добавления сообщений в мой шаблон, и я хочу получить тот же формат datetimefield, что и в {post.pub_date}, который выглядит так: «Feb. 16,2016 1:13:49». На другую тему я нашел что-то вроде этого:Django DatetimeField формат сериализации

class DjangoOverRideJSONEncoder(DjangoJSONEncoder): 
""" 
JSONEncoder subclass that knows how to encode date/time and decimal types. 
""" 
def default(self, o): 
    # See "Date Time String Format" in the ECMA-262 specification. 
    if isinstance(o, datetime.datetime): 
     r = o.isoformat(' ') 
     if o.microsecond: 
      r = r[:23] + r[26:] 
     if r.endswith('+00:00'): 
      r = r[:-6] + 'Z' 
     return r 
    elif isinstance(o, datetime.date): 
     return o.isoformat(' ') 
    elif isinstance(o, datetime.time): 
     if is_aware(o): 
      raise ValueError("JSON can't represent timezone-aware times.") 
     r = o.isoformat(' ') 
     if o.microsecond: 
      r = r[:12] 
     return r 
    elif isinstance(o, decimal.Decimal): 
     return str(o) 
    else: 
     return super(DjangoOverRideJSONEncoder, self).default(o) 

, но я не знаю, как изменить его, чтобы получить желаемый формат. Любые советы будут полезны.

+0

формата, в котором DATETIME с STRFTIME и закодировать строковые –

+0

спасибо за советы, это работает для меня – Max

+0

Ниццы! будет публиковать это как ответ –

ответ

0

Форматировать объект данных Python в строку, используя strftime. Затем закодируйте строку, которая работает с сериализацией JSON, как и любая другая строка.

см https://docs.python.org/2/library/time.html#time.strftime

Смежные вопросы