Установите дату в качестве значения по умолчанию в модели - PullRequest
1 голос
/ 17 февраля 2011

Как я могу установить значение по умолчанию в качестве сегодняшней даты в модели?

Моя модель: voice_date = models.DateField (_ ('дата голосования'), null = False, пробел = False)

Ответы [ 4 ]

2 голосов
/ 12 июня 2011

Ни один из ответов не решает исходную проблему. Решая проблему, как я могу установить значение по умолчанию для поля даты на сегодняшнюю дату, и все же позволяет пользователю переопределить значение по умолчанию. Из документов DJango:

DateField.auto_now
Автоматически устанавливать поле теперь каждый раз, когда объект сохраняется Полезно для "последней модификации" метки времени. Обратите внимание, что текущая дата всегда используется; это не просто значение по умолчанию, которое вы можете переопределить.

DateField.auto_now_add
Автоматически установить поле на сейчас, когда объект впервые создан. Полезно для создания временных меток. Обратите внимание, что текущий дата всегда используется; это не просто значение по умолчанию, которое вы можете переопределить.

Ответ, если это не просто поле «когда это было добавлено / отредактировано», это использовать

default=datetime.date.today

обратите внимание, без паренов. Это устанавливает функцию по умолчанию, а не значение, возвращаемое функцией при оценке модели.

1 голос
/ 17 февраля 2011

Вместо этого используйте auto_now_add, поскольку auto_now будет изменять дату голосования каждый раз, когда объект изменяется.

http://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.DateField.auto_now_add

0 голосов
/ 17 февраля 2011

django command extensions может помочь вам со многими вещами, такими как:

  • CreationDateTimeField - DateTimeField, который будет автоматически установить дату, когда объект первый сохраняется в базе данных. Работает в так же, как и устарел ключевое слово auto_now_add.
  • ModificationDateTimeField - DateTimeField, который будет автоматически установить дату, когда объект будет сохранен в базу данных. Работает так же как устаревшее ключевое слово auto_now.

http://code.google.com/p/django-command-extensions/

0 голосов
/ 17 февраля 2011

Это решит мою проблему:

vote_date = models.DateField(_('vote date'), null=False, blank=False, auto_now=True)

Подробнее о полях Джанго ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...