Как использовать фильтр django.contrib.humanize в сериализаторах DRF

можно ли использовать фильтр Django humanize для drf на сериализаторах

?

я попробовал поместить naturaltime в метод to_representation, как показано ниже

def to_representation(self, instance):
    representation = super(ListUsersSerializer,
                           self).to_representation(instance)
    representation['last_login'] = instance.last_login(naturaltime)

но это не сработало

Да, вы можете пропустить данные через фильтр naturaltime, с:

from django.contrib.humanize.templatetags.humanize import naturaltime

def to_representation(self, instance):
    representation = super().to_representation(instance)
    representation['last_login'] = naturaltime(instance.last_login)
    return representation

Обратите внимание, что в Django naturaltime между числом и его единицей используется неразрывный пробел [wiki], а не обычный пробел, поэтому:

>>> naturaltime(datetime(2019, 11, 25))
'2\xa0years, 2\xa0months ago'
Вернуться на верх