The function datetime.now()
is currently executed as soon as your code is imported, i.e. when you (re)start your server. All subsequent model instances will have the same value.
Instead, you should pass a callable function to default
, that is executed each time a model instance needs a default value. The hint wants to convey that you should literally use DateField(default=django.utils.timezone.now)
without the parentheses.
The message is slightly misleading, but Django doesn’t know whether you used datetime.now()
or django.utils.timezone.now()
.