Как отфильтровать объекты, чья дата создания превышает 30 дней

Вот, у меня есть модель

from django.db import models
class Product(models.Model):
     name=models.CharField(max_length=100)
     created_at=models.DateTimeField(auto_now_add=True)

Я хочу получить все те объекты, дата которых превышает 30 дней с момента создания, таким образом, но это не работает.

Есть ли способ взломать этот сценарий

?
from django.db.models import  F
from django.utils import timezone

Product.objects.annotate(diff_date=(timezone.now()-F('created_at'))).filter(diff_date__days__gte=30)

Вам не нужно делать аннотацию и фильтр, вы можете просто установить фильтр для отбора дат, которые находятся до 30 дней назад, как например:

from datetime import timedelta
from django.utils import timezone

thirty_days_ago = timezone.now() - timedelta(days=30)
Product.objects.filter(created_at__lte=thirty_days_ago)
Вернуться на верх