gpt4 book ai didi

python - 解析 django table2 中的 ISO 8601 日期格式

转载 作者:行者123 更新时间:2023-12-01 09:04:16 27 4
gpt4 key购买 nike

我正在使用django tables2其中:

Note that format uses Django’s date template tag syntax.

根据django date ISO 8601 通过格式字符串“c”选择:

c ISO 8601 format: 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 - A string representing the output format. If not specified, this defaults to the same value as the DATETIME_FORMAT settings key, which will be 'iso-8601' unless set

总而言之,我的问题是:

如何使用django table2解析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 列的空值 ()。其余列按预期显示。

最佳答案

django-tables2 期望 DateTimeColumn 的传入数据是一个实际的 datetime 实例,这是实现:

def __init__(self, format=None, short=True, *args, **kwargs):
if format is None:
format = "SHORT_DATETIME_FORMAT" if short else "DATETIME_FORMAT"
template = '{{ value|date:"%s"|default:default }}' % format
super(DateTimeColumn, self).__init__(template_code=template, *args, **kwargs)

所以我想你有两个选择:

  1. 编写自定义列或使用render_foo methods确保数据在表中正确呈现
  2. 在将数据传递到 django-tables2 之前,将字符串值转换为 datetime 实例。

我建议使用 2。

关于python - 解析 django table2 中的 ISO 8601 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52197487/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com