Джанго: timezone.now против timezone.now ()
Я нахожусь в процессе обновления моего проекта с Django 1.8.2 до 1.9.7, и я получаю это предупреждение:
WARNINGS:
my_app.my_model.date_available: (fields.W161) Fixed default value provided.
HINT: It seems you set a fixed date / time / datetime value as default for this field. This may not be what you want.
If you want to have the current date as default, use `django.utils.timezone.now
Вот строка из my_app / models.py:
from django.utils import timezone
...
class my_model(models.Model):
...
datetime_released = models.DateTimeField(default=timezone.now() )
Если я уберу скобки и вместо этого использую:
datetime_released = models.DateTimeField(default=timezone.now )
Предупреждение Джанго уходит. В чем разница между двумя?
В другой области моего проекта я использую timezone.now () в фильтре наборов запросов:
def date_available(self):
return self.filter(date_available__lte = timezone.now())
Здесь, если я удаляю скобки, выдается ошибка:
TypeError: expected string or buffer
Я могу получить обе эти две работы, добавив / убрав скобки по мере необходимости, но в чем разница междуtimezone.now()
а такжеtimezone.now
и почему они вызывают предупреждения / ошибки в этих случаях?