【发布时间】:2019-02-11 07:53:12
【问题描述】:
我正在使用django tables2:
请注意,格式使用 Django 的日期模板标记语法。
根据django date ISO 8601 选择格式字符串'c':
c ISO 8601 格式:2008-01-02T10:30:00.000123+02:00
这就是我所做的:
import django_tables2 as tables
...
created = tables.DateTimeColumn(format='c')
但这不起作用(表中的created 列显示为空,表示解析有问题)
这是来自 API 的数据:
"created": "2018-09-05T14:00:35.672433Z",
实际上来自DRF,默认使用:
format - 表示输出格式的字符串。如果没有指定, 这默认为与 DATETIME_FORMAT 设置键相同的值, 除非设置,否则将是“iso-8601”
总结一下,我的问题是:
如何用django tables2解析iso8601?
编辑
表格填充如下:
import django_tables2 as tables
from django.utils.translation import ugettext as _
class ExpansionTable(tables.Table):
human = tables.Column()
created = tables.DateTimeColumn(format='c')
size = tables.Column()
description = tables.Column()
output = tables.Column()
class Meta:
attrs = {'class': 'table paleblue'}
order_by = "-created"
这将显示 created 列的空值 (—)。其余列按预期显示。
【问题讨论】:
-
你是如何填充表格中的数据的?
-
@BurhanKhalid 如前所述,数据来自 API,而不是来自表。是的,数据就在那里。实际上,如果我不使用
DateTimeColumn而只是使用Column,则会使用纯文本小部件显示信息。 -
请使用您用于使用来自 API 的数据填充表格的代码更新问题。
-
@BurhanKhalid 已更新。
-
有时后缀“Z”会导致问题。只是为了检查,尝试用“+00:00”替换它。
标签: python django datetime iso8601 django-tables2