Comment filtrer les objets créés il y a moins de n heures dans une vue avec Django ?


Exemples de comment filtrer une queryset (un ensemble de requêtes) d'objets créés il y a moins de n heures avec Django:

Filtrer une "queryset" (Exemple 1)

Filtrer un ensemble de requêtes d'objets créés il y a moins d'une heure à partir de maintenant

time_threshold = datetime.datetime.now(timezone.utc) - datetime.timedelta(hours=1)

query = Article.objects.filter(date_created__gt=time_threshold)

Vérifiez le nombre de nouvelles entrées (Exemple 2)

Exemple d'utilisation d'un filtre pour vérifier le nombre de nouveaux articles créés par les utilisateurs au cours de la dernière heure (supposons que moins de 20 nouveaux articles créés en une heure semblent normaux mais plus peuvent être suspects):

models.py

class Article(models.Model):
    ...
    date_created = models.DateTimeField(default=datetime.now)   
    ...

views.py

time_threshold = datetime.datetime.now(timezone.utc) - datetime.timedelta(hours=1)
results = Article.objects.filter(date_created__gt=time_threshold)
if results.count() < 20:
    print('Looks ok  !')
else:
    print('somehting wrong !')

Références