J'ai 2 modèles différents dans la même application Ce que je veux faire, c'est obtenir tous les livres commandés en descendant la date de sortie Certains duplicats ont été trouvés dans Résultat, je n'avais que 2 livres ajoutés, alors seul 1 livre était dupliqué. Le résultat était quelque chose comme ceci: Book1, Book2, Book2 P> J'ai déjà vu la note de ici et im en utilisant SQLite.
En utilisant des valeurs (), je ne pourrai pas appeler get_absolute_url () et d'autres méthodes que je veux appeler afin que l'utilisation de valeurs () est hors de question. P> Ensuite, j'ai essayé d'annoter le chapitre rdate dans une requête de livre comme celle-ci
toujours terminé dans le même résultat. Je suis totalement perdue, s'il vous plaît besoin d'aide. Je ne changerai probablement pas à PostgreSQL maintenant, mais je pourrais l'utiliser lorsque je déploierai de l'application, alors je souhaite à la fois des solutions de version SQLite et de la version postgreSQL pour cela si possible. SQLite Solution est absolument nécessaire pour moi puisqu'il est facile à utiliser dans le développement. P> P> RDate code>
Ce que j'ai essayé est: p>
book.Object.All (). Order_by ('- chapitre__rdate'). Distinct () Code> P>
book.Object.all (). Annotate (bdate = expresswrapper (f ('chapitre__rdate'), sortie_field = DateTimefield ()))). Commande_by ('- Bdate'). Distinct () Code> P >
3 Réponses :
Vous pouvez essayer ce
Chapter.objects.values('book__title').distinct()
Ouais, je ne pourrai pas toujours appeler des méthodes comme Get_Absolute_url et d'autres afin de ne pas utiliser.
C'est un autre sujet, non lié à ordre code>. Regardez: docs.djangoproject.com/fr/ 2.1 / Réf / Modèles / Instances / ...
Vous devriez essayer comme ci-dessous:
Book.objects.all().order_by('-chapter__rdate').distinct('chapter__rdate')
Il est lancé django.db.utils.notsupportederror: Distinct sur les champs n'est pas pris en charge par ce backend de la base de données code> Pouvez-vous vérifier cela?
S'il vous plaît, essayez après avoir supprimé '-' de votre clause. Book.ObjectS.all (). Ecrand_by ('chapitre__rdate'). Distinct ('Chap Ter__RDate') Veuillez partager des erreurs si elles ne fonctionnent toujours pas.
a fonctionné après avoir essayé ceci: p>
Merci pour toute l'aide. P> book.ObjectS.all (). Annotate (CH_Date = max ('chapitre__rdate'))). Commande_by ('- CH_Date') CODE> P>