2 votes

Ordre de Django par un champ de clé étrangère

J'ai deux modèles comme indiqué ci-dessous :

class Project(models.Model):
    name = models.TexField()

class Item(models.Model):
    project = models.ForeignKey(Project,on_delete=models.CASCADE, related_name='project_item')
    name = models.TextField()
    available = models.FloatField()

J'ai donc besoin de récupérer tous les projets, mais je veux qu'ils soient tels que, tous ces projets qui ont des éléments qui ont available plus que 0 doit passer en premier.

J'ai essayé ça :

list = Projects.objects.filter(**Some Fields**).order_by(available)

Comment puis-je trier cette liste ?

3voto

Ozgur Akcali Points 158

Vous pouvez faire suivre les relations dans les clauses d'ordre par un double soulignement, comme suit :

list = Projects.objects.filter(**Some Fields**).order_by('-item__available')

Cela permet de classer les projets par ordre décroissant en fonction du champ disponible des éléments liés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X