J'ai un modèle pour nos clients et un modèle pour leurs achats/commandes. Dans notre backend/administrateur web, nous voulons être en mesure de trier la liste des clients par leur commande la plus récente.Django order_by a _set
Voici essentiellement ce que nos modèles ressemblent à
class Customer(models.Model):
username = models.CharField(max_length=32)
first_name = models.CharField(max_length=322)
def __unicode__(self):
return "%s" % self.username
def get_last_order_date(self):
self.order_set.latest('purchase_date')
class Order(models.Model):
customer = models.ForeignKey(Customer)
purchase_date = models.DateTimeField()
Je peux afficher l'ordre le plus récent de chaque client en utilisant ma fonction get_last_order_date, mais je ne peux pas trier par cette fonction (ou du moins je n » je sais comment). J'ai essayé tout ce que je peux penser:
.order_by('order__purchase_date')
.order_by('order__set').latest('purchase_date')
et beaucoup plus sans chance.
Tous les indices ou indices seraient très appréciés.
Merci.
Merci sooo beaucoup! J'ai lu et relu les documents et cherché sur le net pendant un moment. J'avais créé une "solution" en utilisant sorted() mais je n'ai vraiment pas aimé l'inefficacité. Merci encore. – mhost
Enfin trouvé un moyen de le faire! Merci beaucoup Daniel! – marcelosalloum