Django DateTimeField Timestamp имеет неверный формат. Оно должно быть в формате YYYY-MM-DD HH:MM[:ss[.uuuuuuuuu]][TZ].

Окружающая среда:

  • Django 4.0 (venv)
  • Python 3.8
  • Postgres 15
  • Elementary OS 6.1

Начальная модель:

class MyModel(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

После сохранения новой записи ( без указания значения для "created" или "updated") результат был следующим:

django.core.exceptions.ValidationError: ['“1669827388000” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format.']

Тогда я последовал некоторым предложениям, чтобы сделать это:

class MyModel(models.Model):
created = models.DateTimeField(editable=False)
updated = models.DateTimeField(editable=False)

# Still doesnt work: It gets a timestamp
def save(self, *args, **kwargs):
    if not self.id:
        self.created = timezone.now()
    self.updated = timezone.now()
    return super(Token, self).save(*args, **kwargs)

Результат был точно таким же (конечно, значение временной метки изменилось).

Я пробовал вариации с django.settings settings.USE_TZ из True в False и наоборот.

Traceback:

Заранее спасибо за любое предложение!

Как уже упоминалось @AdrianKlaver, сначала следует выполнить конвертацию из ms.

Вернуться на верх