Django: timezone.now vs timezone.now ()
Estoy en el proceso de actualizar mi proyecto de Django 1.8.2 a 1.9.7 y recibo esta advertencia:
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
Aquí está la línea de my_app / models.py:
from django.utils import timezone
...
class my_model(models.Model):
...
datetime_released = models.DateTimeField(default=timezone.now() )
Si elimino los paréntesis y en su lugar uso:
datetime_released = models.DateTimeField(default=timezone.now )
La advertencia de Django desaparece. ¿Cuál es la diferencia entre los dos?
En otra área de mi proyecto estoy usando timezone.now () en un filtro de conjunto de consultas:
def date_available(self):
return self.filter(date_available__lte = timezone.now())
Aquí, si elimino los paréntesis, se produce un error:
TypeError: expected string or buffer
Puedo obtener estos dos trabajos agregando / eliminando el paréntesis según sea necesario, pero ¿cuál es la diferencia entretimezone.now()
ytimezone.now
¿Y por qué provocan advertencias / errores en estos casos?