修改django-tables2中DateTimes的显示格式
Modifying display format of DateTimes in django-tables2
我目前正在使用 django-tables2 来显示我的模型的查询集。该模型的属性之一是精确到毫秒的 DateTimeField,在我的 table.
中被截断到分钟
我之前在 HTML 中手动实现了一个简单的 table 并且没有任何问题。我的 DateTimeFields 遵循设置中应用的 DATETIME_FORMAT:
settings.py
DATETIME_FORMAT = 'Y N j, H:i:s.u'
从我开始使用django-tables2开始就出现了这个问题。有什么方法可以修改它显示 DateTimeFields 的方式或使其遵循我指定的 DATETIME_FORMAT?我需要保留排序功能,因此无法转换为字符串。
我正在使用 render_table 来显示我的 table。以下是我的tableclass:
class ModelTable(tables.Table):
class Meta:
model = Measurement
sequence = ('date_time', 'latitude', 'longitude',
'depth', 'soundvel', 'instrument')
问题已解决。
django-table2 的 DateTimeColumn class 似乎在寻找 SHORT_DATETIME_FORMAT 而不是我的 settings.py 中的 DATETIME_FORMAT。更新了我的设置文件中的值,一切正常。
当我尝试使用 Python 日期时间格式化选项时,这让我困惑了一段时间。 Django 模板的格式化选项适用于 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']
您可以添加 'format' 作为 DateTimeColumn 的参数。
https://django-tables2.readthedocs.io/en/latest/_modules/django_tables2/columns/datetimecolumn.html
class DateTimeColumn(TemplateColumn):
"""
A column that renders `datetime` instances in the local timezone.
Arguments:
format (str): format string for datetime (optional).
Note that *format* uses Django's `date` template tag syntax.
short (bool): if `format` is not specified, use Django's
``SHORT_DATETIME_FORMAT``, else ``DATETIME_FORMAT``
我目前正在使用 django-tables2 来显示我的模型的查询集。该模型的属性之一是精确到毫秒的 DateTimeField,在我的 table.
中被截断到分钟我之前在 HTML 中手动实现了一个简单的 table 并且没有任何问题。我的 DateTimeFields 遵循设置中应用的 DATETIME_FORMAT:
settings.py
DATETIME_FORMAT = 'Y N j, H:i:s.u'
从我开始使用django-tables2开始就出现了这个问题。有什么方法可以修改它显示 DateTimeFields 的方式或使其遵循我指定的 DATETIME_FORMAT?我需要保留排序功能,因此无法转换为字符串。
我正在使用 render_table 来显示我的 table。以下是我的tableclass:
class ModelTable(tables.Table):
class Meta:
model = Measurement
sequence = ('date_time', 'latitude', 'longitude',
'depth', 'soundvel', 'instrument')
问题已解决。
django-table2 的 DateTimeColumn class 似乎在寻找 SHORT_DATETIME_FORMAT 而不是我的 settings.py 中的 DATETIME_FORMAT。更新了我的设置文件中的值,一切正常。
当我尝试使用 Python 日期时间格式化选项时,这让我困惑了一段时间。 Django 模板的格式化选项适用于 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']
您可以添加 'format' 作为 DateTimeColumn 的参数。
https://django-tables2.readthedocs.io/en/latest/_modules/django_tables2/columns/datetimecolumn.html
class DateTimeColumn(TemplateColumn):
"""
A column that renders `datetime` instances in the local timezone.
Arguments:
format (str): format string for datetime (optional).
Note that *format* uses Django's `date` template tag syntax.
short (bool): if `format` is not specified, use Django's
``SHORT_DATETIME_FORMAT``, else ``DATETIME_FORMAT``