Django: timezone.now vs timezone.now()
<p>I am in the process of upgrading my project from Django 1.8.2 to 1.9.7 and I'm getting this warning:</p>

<pre><code>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
</code></pre>

<p>Here's the line from my_app/models.py:</p>

<pre><code>from django.utils import timezone
...
class my_model(models.Model):
    ...
    datetime_released = models.DateTimeField(default=timezone.now() )
</code></pre>

<p>If I remove the parentheses and instead use:</p>

<pre><code>datetime_released = models.DateTimeField(default=timezone.now )
</code></pre>

<p>The Django warning goes away.  What's the difference between the two?</p>

<hr>

<p>In another area of my project I am using timezone.now() in a queryset filter:</p>

<pre><code>def date_available(self):
        return self.filter(date_available__lte = timezone.now())
</code></pre>

<p>Here, if I remove the parentheses, an error is thrown:</p>

<p><code>TypeError: expected string or buffer</code></p>

<hr>

<p>I can get both of these two work by adding/removing the parenthesis as required, but what is the difference between <code>timezone.now()</code> and <code>timezone.now</code> and why do they cause warnings/errors in these cases?</p>