Я пытаюсь отключить сообщения после события, определенной даты.Я разработал простую модель для проверки своей цели, и внутри модели я поместил функцию ( с именем is_expired ), которая в идеале должна определять, находится ли публикация в сети.Ниже представлена модель :
from django.db import models
from django.utils import timezone
import datetime
class BlogPost(models.Model):
CHOICHES = (
("Unselected", "Unselected"),
("One Month", "One Month"),
("One Year", "One Year"),
)
title = models.CharField(
max_length=70,
unique=True,
)
membership = models.CharField(
max_length=50,
choices=CHOICHES,
default="Unselected",
)
publishing_date = models.DateTimeField(
default=timezone.now,
)
def __str__(self):
return self.title
@property
def is_future(self):
if self.publishing_date > datetime.datetime.now():
return True
return False
@property
def is_expired(self):
if self.membership == "One Month":
def monthly(self):
if publishing_date + datetime.timedelta(days=30) <= datetime.datetime.now():
return True
if self.membership == "One Year":
def yearly(self):
if publishing_date + datetime.timedelta(days=365) <= datetime.datetime.now():
return True
return False
class Meta:
ordering = ['-publishing_date']
. Для отображения списка всех сообщений с истекшим сроком действия я использую этот простой шаблон :
{% for p in posts_list %}
{% if p.is_future or p.is_expired %}
<div class="container my-4 bg-primary">
<h3><a class="text-white" href="{{ p.get_absolute_url }}">{{ p.title }}</a></h3>
<h5>Data di pubblicazione: {{ p.publishing_date|date:"d - M - Y | G:i:s" }}</h5>
{% if p.is_expired %}
<p>Expired? <span class="text-danger"><strong>Yes</strong></span></p>
{% else %}
<p>Expired? <span class="text-success"><strong>No</strong></span></p>
{% endif %}
</div>
{% endif %}
{% empty %}
<div class="container my-4 bg-primary">
<h1>No posts!</h1>
</div>
{% endfor %}
Проблема в том, что я не вижу сообщения с истекшим сроком действия, а только будущие сообщения ( с функцией is_future ), внутри консоли нет ошибок, и теперь я не вижу, где находится ошибка.Я новичок в использовании Python и Django.
Кто-то может указать мне на ошибку?
ОБНОВЛЕНИЕ:
views.py
def listPosts(request):
posts_list = BlogPost.objects.all()
context = {"posts_list": posts_list}
template = 'blog/reading/list_post.html'
return render(request, template, context)