У Django 1.8 теперь есть проблемы с обнаружением проблем для моделей, что приятно. Однако, за одно предупреждение, которое он мне дает, я понимаю проблему, но я не понимаю, как подсказка, которую она мне дает, лучше.«Исправлено заданное значение по умолчанию» после обновления до Django 1.8
Это мой (плохо) модель поля:
my_date = DateField(default=datetime.now())
, и это легко понять, почему это плохо. Но это намек, который он мне дает:
MyMoel.my_date: (fields.W161) Исправлено заданное значение по умолчанию.
СОВЕТ: Кажется, вы установили фиксированное значение даты/времени/даты и времени для этого поля. Возможно, это не то, что вы хотите. Если вы хотите иметь текущую дату по умолчанию, используйте `django.utils.timezone.now`
Так, он говорит, чтобы использовать timezone.now
, но как же это лучше, чем datetime.now
? Они оба значения «по умолчанию» фиксированной ... timezone.now
только возвращает Задан экземпляр, который представляет собой фиксированное значение ...
я подозреваю, что он на самом деле хочет, чтобы я, чтобы вставить какой-то флаг, который говорит "использовать timezone.now
позже". Но это не то, о чем говорится в подсказке ... так что это за флаг?
Таким образом, при условии, что любой вызывающий может сделать валидатор счастливым (т. Е. Я могу передать его либо 'datetime.now', либо' timezone.now', или что-нибудь, что является функцией, которая возвращает дату)? – Troy
Да, любой из них должен сделать валидатор (и в конечном итоге, вы) счастливым. – knbk