Какой часовой пояс использует Django в auto_now_add DateField?

Как Django записывает поле даты, когда поле помечено атрибутом auto_now_add ?

Это как datetime.now().date() или timezone.now().date() ?

Другими словами, какой часовой пояс он использует для получения текущей даты?

2 Solutions collect form web for “Какой часовой пояс использует Django в auto_now_add DateField?”

Похоже, он использует datetime.date.today() , который будет локальной датой системы:

db / models / fields / __ init__.py :

 class DateField(Field): ... def pre_save(self, model_instance, add): if self.auto_now or (self.auto_now_add and add): value = datetime.date.today() setattr(model_instance, self.attname, value) return value 

Если вы хотите другое поведение, вы можете удалить auto_now_add=True затем подключить сигнал pre_save модели к приемнику, который установит ваше поле в pre_save вами дату.

В качестве альтернативы вы можете переопределить метод save модели и установить там поле.

По умолчанию Django использует часовой пояс, указанный в вашем параметре settings.py TIME_ZONE.

По умолчанию установлено значение:

 TIME_ZONE = 'UTC' 

Более подробную информацию об этом можно найти здесь:

https://docs.djangoproject.com/en/1.7/topics/i18n/timezones/

  • django одно приложение одна модель несколько баз данных
  • В чем разница между Model.id и Model.pk в django?
  • Использование функций get или insert для одного или нескольких моделей django и моделей
  • Как получить доступ к значениям словаря в шаблоне django
  • Django: Syncdb неправильно предупреждает, что поле «многие ко многим» устарело
  • Доступ к экземпляру родительской модели из modelform admin inline
  • Ошибка страницы администратора Django
  • Как создать поле модели django, которое имеет значение по умолчанию, если оно когда-либо установлено в null
  • Python - лучший язык программирования в мире.