Как использовать фильтр 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'