2015-07-22 3 views
0

На каждой из моих моделей мне нравится отслеживать созданные и измененные времена. Я всегда добавляю это в свои классы моделей:поведение модели Bizarre Django с созданным/обновленным DateTimeFields

class SomeModel(models.Model): 
    ... 
    creation_date = models.DateTimeField(auto_now_add=True) 
    modified_date = models.DateTimeField(auto_now=True) 

Прохладный. Просто так? Ага. Или вы всегда можете сделать это:

from django_extensions.db.models import TimeStampedModel 

class SomeModel(TimeStampedModel): 
    ... 

Сейчас сегодня, в первый раз когда-либо, я вижу странное поведение, когда просто запустив проект на моем сервере разработки против моего живого сервера.

Примечание: Следует отметить, что ниже поведение происходит с моей ручной настройки модели CREATION_DATE/MODIFIED_DATE, а также, если я использую TimeStampedModel от django_extensions.

На моем сервере разработки он работает, как ожидалось:

Добавить новый экземпляр модели

  1. Auto обновляет CREATION_DATE
  2. Auto обновляет MODIFIED_DATE

Update пример модели

  1. CREATION_DATE остается неизменным от первоначального (ожидаемого поведения)
  2. Auto обновляет MODIFIED_DATE

Однако после того, как вытащили мой живой сервер мы получаем такое поведение:

Добавить экземпляр модели

  1. Auto обновляет CREATION_DATE
  2. Auto обновляет MODIFIED_DATE

Обновление экземпляра модели

  1. CREATION_DATE получает значение 0000-00-00 00: 00: 00,000000 (неожиданное поведение)
  2. Автоматическое обновление измененного_данного

сервер разработки:

  • Джанго 1,8
  • Python 2.7.9
  • MySQL Ver 14,14 Distrib 5,6.

Живой Сервер:

  • Джанго 1,8
  • Python 2.7.9
  • MySQL Ver 14,14 Distrib 5,6.

Как вы можете видеть, единственное различие между ними небольшое изменение в MySQL. Это не должно быть проблемой, но все же я здесь ... получаю это странное поведение. Есть идеи?

+0

MySQL .... Это не должно быть проблемой hahahahaha –

ответ

Смежные вопросы