Django-rest-framework «Ожидаемая« дата », но получила« дату-время ». Отказ от принуждения, [дублировать]

Все, что совпадает с чем-то, заканчивающимся на --- .*a$ Итак, когда вы сопоставляете регулярное выражение, отрицайте это условие или, альтернативно, вы также можете делать .*[^a]$, где [^a] означает все, что есть not a

62
задан Srikar Appalaraju 22 November 2012 в 16:31
поделиться

5 ответов

Вот почему вы всегда должны импортировать базовый модуль datetime: import datetime, а не класс datetime в этом модуле: from datetime import datetime.

Другая ошибка, которую вы сделали, - это фактически вызвать функцию по умолчанию с помощью (). Это означает, что все модели получат дату во время определения класса - поэтому, если ваш сервер будет оставаться в течение нескольких дней или недель без перезапуска Apache, все элементы получат такую ​​же начальную дату.

Таким образом, поле должно быть:

import datetime
date = models.DateField(_("Date"), default=datetime.date.today)
111
ответ дан Nam G VU 24 August 2018 в 03:56
поделиться

Это должно сделать трюк:

models.DateTimeField(_("Date"), auto_now_add = True)
3
ответ дан btk 24 August 2018 в 03:56
поделиться
date = models.DateTimeField(default=datetime.now, blank=True)
6
ответ дан Grijesh Chauhan 24 August 2018 в 03:56
поделиться

Вы ошибаетесь, используя модуль datetime вместо модуля даты. Вы хотели бы сделать это:

from datetime import date
date = models.DateField(_("Date"), default=date.today)

Если вы хотите только захватить текущую дату, правильный способ справиться с этим - использовать параметр auto_now_add:

date = models.DateField(_("Date"), auto_now_add=True)

Однако, modelfield docs ясно указывают, что auto_now_add и auto_now будут всегда использовать текущую дату и не являются значением по умолчанию, которое вы можете переопределить.

28
ответ дан josh kersey 24 August 2018 в 03:56
поделиться

Вы также можете использовать lambda. Полезно, если вы используете django.utils.timezone.now

date = models.DateField(_("Date"), default=lambda: now().date())
1
ответ дан Neil 24 August 2018 в 03:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: