Как получить время, прошедшее с момента ввода данных из поля 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)