Вычтите микросекунд из timedelta
, которые у вас есть
from datetime import timedelta
class MyModel(models.Model):
...
created = models.DateTimeField(auto_now=True)
@property
def now_diff(self):
<b>delta = timezone.now() - self.created
return str(delta - timedelta(microseconds=delta.microseconds))</b>
Для более удобочитаемого решения,
from datetime import timedelta
<b>def chop_microseconds(delta):
return delta - timedelta(microseconds=delta.microseconds)</b>
class MyModel(models.Model):
...
created = models.DateTimeField(auto_now=True)
@property
def now_diff(self):
return <b>str(chop_microseconds(timezone.now() - self.created))</b>
Некоторые вещи BG
Если мы посмотрим на Исходный код __str__()
функции timedelta
class,
....
if self._microseconds:
s = s + ".%06d" % self._microseconds
...
, который преобразует строковое представление объекта timedelta.
Итак, здесь мы вычитаем микросекунду из timedeltaи, следовательно, решил проблему:)