I'm trying to make a function inside a model that don't return the post published in a future.
This is the model:
from django.db import models
from django.utils import timezone
import datetime
class ModelPost(models.Model):
    title = models.CharField(
        max_length=70,
        unique=True,
        )
    publishing_date = models.DateTimeField(
                        default=timezone.now,
                        )
    contents = models.TextField(
        max_length=200,
        blank=True,
        )
    def __str__(self):
        return self.title
    @property
    def is_future(self):
        if self.publishing_date > datetime.now()
            return True
        return False
The views is this:
def listPostsOnline(request):
    posts_list = BlogPost.objects.all()  #filter(published=True)
    context = {"posts_list": posts_list}
    template = 'blog/reading/list_post_online.html'
    return render(request, template, context)
And this is the template:
{% for p in posts_list %}
  {% if not p.is_future %}
  <div class="container my-4">
    <h3><a href="{{ p.get_absolute_url }}">{{ p.title }}</a></h3>
    <h5>{{ p.publishing_date|date:"d - M - Y | G:i:s" }}</h5>
  </div>
  {% else %}
  <div class="container-full">
    <h1>No data!</h1>
  </div>
  {% endif %}
{% endfor %}
The problem is that I have this error
module 'datetime' has no attribute 'now'
attributed to is_future and I not be able to resolve.
UPDATE
I was inspired by this post
FIRST TRY
I've put from datetime import datetime instead of import datetime and I see this error:
can't compare offset-naive and offset-aware datetimes
SECOND TRY
With import datetime I've put if self.publishing_date > datetime.datetime.now(): instead of if self.publishing_date > datetime.now(): and I see again this:
can't compare offset-naive and offset-aware datetimes