8
votes

Django: Voulez-vous trier les commentaires par DateTime

J'ai dans mes commentaires et je veux les trier avec le dernier commentaire en haut de la liste. Cependant, cela ne fonctionne pas. Je reçois cette erreur.

TypeError tandis que Rendu: "commentaire" objet n'est pas ibler

Je ne suis pas si sûr de ce qui cause ce problème. Voici mes vues et mon modèle qui peuvent aider.

Vues xxx

xxx


0 commentaires

3 Réponses :


2
votes

Commentaire dans Commentaires = Commenter.ObjectS.Latest ('DateTime') n'est pas une collection de commentaires; C'est un commentaire unique .

Ce que vous voulez faire est de créer un tableau d'objets de commentaire et de l'itérale à travers cela.


0 commentaires

10
votes

La dernière méthode Dernière ne renvoie qu'un seul objet, pas un itérateur: https://docs.djangoproject.com/fr/dev/ref/ Modèles / QuerySets / # Dernier

Utilisez la méthode ordre_by pour les commander par date (premier exemple dans le doc): https: // docs. djangoproject.com/fr/dev/ref/models/querysets/#django.db.models.Query.queryset.order_by


1 commentaires

Je suppose que c'est ce dont j'ai besoin. commentaires = COMMENTE.OBJECTS.ODE_BY ('- DateTime')



13
votes

Le moyen le plus propre est d'ajouter une classe méta à votre modèle et d'ajouter le paramètre de commande comme celui-ci: xxx

de sorte que chaque requête que vous produisez sera commandée par DateTime. < p> Un autre conseil ne choisit pas "DateTime" comme nom de champ, DateTime est un module Python inclus dans la norme Lib.

Voir également Django Commander des documents ICI


1 commentaires

Vous êtes manquant des virgules commander = ('-DateTime',)