django-tables2 LinkColumn 正确显示日期

django-tables2 LinkColumn show Date correctly

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

我在 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"

和 table:

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

在此先感谢您的帮助或想法。

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

例如:

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 %Xdocumentation here.

呈现日期和时间

请注意,如果此字段可为空,则应在使用 text 传递的可调用项中添加检查。