Django: le fuseau horaire.maintenant vs fuseau horaire.maintenant()

Je suis dans le processus de mise à jour de mon projet de Django 1.8.2 à 1.9.7 et je suis de cet avertissement:

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

Voici la ligne de my_app/models.py:

from django.utils import timezone
...
class my_model(models.Model):
    ...
    datetime_released = models.DateTimeField(default=timezone.now() )

Si je supprime les parenthèses et utiliser à la place:

datetime_released = models.DateTimeField(default=timezone.now )

Le Django d'avertissement disparaît. Quelle est la différence entre les deux?


Dans un autre domaine de mon projet, je suis à l'aide du fuseau horaire.maintenant() dans un queryset filtre:

def date_available(self):
        return self.filter(date_available__lte = timezone.now())

Ici, si je supprime les parenthèses, une erreur est levée:

TypeError: expected string or buffer


Je peux obtenir à la fois de ces deux travaux en ajoutant/enlevant les parenthèses comme nécessaire, mais quelle est la différence entre timezone.now() et timezone.now et pourquoi font-ils la cause des avertissements/erreurs dans ces cas?

type(maintenant()) rediffusions un objet datetime. type(maintenant) les rediffusions de la méthode maintenant

OriginalL'auteur 43Tesseracts | 2016-07-07