Все, что совпадает с чем-то, заканчивающимся на --- .*a$
Итак, когда вы сопоставляете регулярное выражение, отрицайте это условие или, альтернативно, вы также можете делать .*[^a]$
, где [^a]
означает все, что есть not a
Вот почему вы всегда должны импортировать базовый модуль datetime
: import datetime
, а не класс datetime
в этом модуле: from datetime import datetime
.
Другая ошибка, которую вы сделали, - это фактически вызвать функцию по умолчанию с помощью ()
. Это означает, что все модели получат дату во время определения класса - поэтому, если ваш сервер будет оставаться в течение нескольких дней или недель без перезапуска Apache, все элементы получат такую же начальную дату.
Таким образом, поле должно быть:
import datetime
date = models.DateField(_("Date"), default=datetime.date.today)
Это должно сделать трюк:
models.DateTimeField(_("Date"), auto_now_add = True)
date = models.DateTimeField(default=datetime.now, blank=True)
Вы ошибаетесь, используя модуль 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 будут всегда использовать текущую дату и не являются значением по умолчанию, которое вы можете переопределить.
Вы также можете использовать lambda
. Полезно, если вы используете django.utils.timezone.now
date = models.DateField(_("Date"), default=lambda: now().date())