"Fixed default value provided" after upgrading to Django 1.8 -


django 1.8 has problem detection models, nice. however, 1 warning giving me, understand problem, don't understand how hint giving me better.

this (bad) model field:

my_date = datefield(default=datetime.now()) 

and it's easy see why that's bad. hint it's giving me:

mymoel.my_date: (fields.w161) fixed default value provided.
    hint: seems set fixed date / time / datetime value default field. may not want. if want have current date default, use `django.utils.timezone.now`

so, says use timezone.now, how better datetime.now? they're both "fixed default" values... timezone.now returns datetime instance, fixed value...

i suspect wants me insert sort of flag says "use timezone.now later". that's not hint says... flag?

the function datetime.now() executed code imported, i.e. when (re)start server. subsequent model instances have same value.

instead, should pass callable function default, executed each time model instance needs default value. hint wants convey should literally use datefield(default=django.utils.timezone.now) without parentheses.

the message misleading, django doesn't know whether used datetime.now() or django.utils.timezone.now().


Popular posts from this blog