Изменение отображения поля в таблице Django tables2

Я пытаюсь взять поле даты и отобразить его в таблице django tables2. Проблема в том, что мое поле использует Djangos DateTimeField и имеет добавленное в конце время, которое я не хочу отображать. Моя первоначальная мысль была использовать декоратор свойств и ссылаться на него в моей таблице, а не использовать мое оригинальное поле даты. Но когда я пытаюсь использовать split внутри функции свойства, в таблице ничего не отображается. Если я модифицирую функцию, чтобы она просто выводила строку без использования split, то все работает как надо. Похоже, что я не могу использовать split нигде в функции, даже если я возвращаю жестко закодированную строку вместо того, что я разделяю. Использование split внутри функции просто ломает ее и заставляет ничего не отображать. Почему я не могу использовать split внутри моей функции, и есть ли альтернативный или лучший способ изменить то, как выглядит дата, когда она отображается в моей таблице?

#tables.py
class ReportTable(tables.Table):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    class Meta:
        attrs = {"class": "mytable"}
        model = models.Report
        fields = ("formatted_date")
#models.py
class Report(models.Model):
    id = models.AutoField(db_column="RootCauseID", primary_key=True)
    date = models.DateTimeField(db_column="date", blank=False, null=True)

    @property
    def formatted_date(self):
        date = self.date
        date_list = date.split()
        final_date = date_list[0]
        return f"{final_date}"

    class Meta:
        managed = True
        db_table = "Report"

Вы не можете разделить то, что возвращается из столбца, потому что это объект Python datetime.datetime. Документация

class DateTimeField(auto_now=False, auto_now_add=False, **options)

Дата и время, представленные в Python экземпляром datetime.datetime экземпляр. Принимает те же дополнительные аргументы, что и DateField.

По словам Марко, похоже, что можно самостоятельно изменить формат объекта datetime. Документация

tables.DateTimeColumn(format ='M d Y, h:i A')
Вернуться на верх