2015-01-20 2 views
1

В настоящее время я использую django-tables2 для отображения набора запросов моей модели. Одним из атрибутов этой модели является DateTimeField с точностью до миллисекунды, которая усекается до минуты в моей таблице.Изменение формата отображения DateTimes в django-tables2

Ранее я вручную выполнил простую таблицу в HTML и не имел проблем. Мои DateTimeFields следовали верный DATETIME_FORMAT применяется в моих настройках:

settings.py

DATETIME_FORMAT = 'Y N j, H:i:s.u' 

Проблема возникла с тех пор как я начал использовать Джанго-tables2. Есть ли способ изменить способ отображения DateTimeFields или заставить его следовать моему указанному DATETIME_FORMAT? Мне нужно сохранить функцию сортировки, поэтому преобразование в строку не является вариантом.

Я использую render_table для отображения таблицы. Следующим является мой класс таблицы:

class ModelTable(tables.Table): 
    class Meta: 
     model = Measurement 
     sequence = ('date_time', 'latitude', 'longitude', 
        'depth', 'soundvel', 'instrument') 

ответ

2

Проблема решена.

Класс DateTimeColumn django-table2, похоже, ищет SHORT_DATETIME_FORMAT, а не DATETIME_FORMAT в моих настройках.py. Обновлено значение в моем файле настроек и все в рабочем состоянии.

0

Это немного смутило меня, когда я пытался использовать параметры форматирования даты и времени Python. Параметры форматирования для шаблонов Django применяются в Джанго-tables2 и полностью перечислены в документации Django:
https://docs.djangoproject.com/en/dev/ref/templates/builtins/#std:templatefilter-date

От того, если у вас есть модель с одной колонкой даты и времени, и вы хотите их день рождения, чтобы быть отформатированы как Month Day Year, Hour:Minute AM/PM, то вы должны указать:

class MyTable(tables.Table): 
    birthday = tables.DateTimeColumn(format ='M d Y, h:i A') 

    class Meta: 
     model = Person 
     attrs = {'class': 'table'} 
     fields = ['birthday'] 
Смежные вопросы