1

我目前正在开发一个使用 Django 1.11.2 和 django-tables2 的项目。我使用表格来展示我的模型。该模型有一个 DateTimeField,它在普通列中正确显示,但是当我将 LinkColumn 与此 DateTimeField 一起使用时,日期以如下复杂格式显示:'2017-02-23 07:49:53.067504+00:00 ' 而不是 '23.02.2017 07:49'。链接工作正常,但我找不到恢复简单格式的方法。

LinkColumn 看起来像这样

我在models.py中的模型:

class mymodel(models.Model):
Date = models.DateTimeField(auto_now_add=True, help_text='(Format: TT.MM.JJJJ)')

...other fields...

class Meta:
    ordering = ["Date"]
    verbose_name = "MyModel"
    verbose_name_plural = "MyModels"

和表格:

class MyModelTable(django_tables2.Table):
Date = django_tables2.LinkColumn(viewname='MyModelView', kwargs={"id": Accessor("id")})
class Meta:
    model = MyModel
    exclude = {'id'}
    attrs = {"class": "paleblue"}

提前感谢您的任何帮助或想法。

4

1 回答 1

2

LinkColumn将列中的值转换为字符串并且不关心日期。您可以使用该text参数来LinkColumn传递一个可调用对象,以使用自定义方式呈现该值。

例如:

class MyModelTable(django_tables2.Table):
    Date = django_tables2.LinkColumn(
        viewname='MyModelView', 
        kwargs={"id": Accessor("id")},
        text=lambda record: record.Date.strftime('%x %X')
    )

    class Meta:
        model = MyModel
        exclude = {'id'}

将使用格式字符串呈现日期和时间%x %X这里有文档

请注意,如果此字段可以为空,您应该在您传递的可调用对象中添加一个检查text

于 2017-07-10T15:19:46.873 回答