Как получить время, прошедшее с момента ввода данных из поля datetime

В шаблонах Django я могу сделать временной интервал для моей модели, чтобы узнать, как долго был сделан пост

Модель

class Post(models.Model):
    author = models.ForeignKey(User, on_delete=CASCADE)
    trade = models.CharField(max_length=100)
    date_posted = models.DateTimeField(default=timezone.now)
{{post.date_posted|timesince}}

Вышеуказанное вернет мне что-то вроде 1 день, 8 часов назад

Мой вопрос в том, как мне сделать это на самой модели?

Чтобы поле date_posted возвращало его в гуманизированном формате.

Я пытался добавить следующее к моей модели, но это не работает

    def FORMAT(self):
       return timesince(self.date_posted)

Я хотел бы сделать это так, чтобы когда я делаю вызов API к посту с помощью DRF, он возвращал мне время в гуманизированной форме, и я мог внедрить его непосредственно в мой фронт-энд (Next.js).

Вы можете использовать функцию timesince.timesince(...) непосредственно как,

from django.db import models
from django.utils import timesince


class Post(models.Model):
    author = models.ForeignKey(User, on_delete=CASCADE)
    trade = models.CharField(max_length=100)
    date_posted = models.DateTimeField(default=timezone.now)

    @property
    def timesince(self):
        return timesince.timesince(self.date_posted)
Вернуться на верх