Tenez compte des modèles:Django: objets de commande par les attributs de leurs enfants
class Author(models.Model):
name = models.CharField(max_length=200, unique=True)
class Book(models.Model):
pub_date = models.DateTimeField()
author = models.ForeignKey(Author)
Supposons maintenant que je veux commander tous les livres, disons, leur pub_date. J'utiliserais order_by('pub_date')
. Mais que se passe-t-il si je veux une liste de tous les auteurs classés en fonction de qui a publié le plus récemment des livres?
C'est vraiment très simple quand on y pense. Il est essentiellement:
- L'auteur sur le dessus est celui qui a récemment publié un livre
- Le prochain est celui qui a publié des livres pas nouveaux comme la première,
- Donc, etc.
Je pourrais probablement pirater quelque chose ensemble, mais comme cela pourrait grossir, j'ai besoin de savoir que je le fais bien.
Aide appréciée! Enfin, serait-il possible d'ajouter un nouveau champ à chacun pour montrer la date du dernier livre et juste mettre à jour que tout le temps soit meilleur?
Hey, ressemble à ce dont j'ai besoin. Juste si je peux demander: 1. Comment ça marche et 2. Comment est-ce en termes de performance? – cwj
Hmm réellement désolé je ne hink pas cela va fonctionner, l'appel .distinct() va interagir avec la liste, accrocher je le répare pour vous. – DevDevDev
Il ya peut-être un meilleur moyen, je pourrais le faire en SQL, donc je sais que vous pouvez le faire en utilisant des modèles Django, mais je ne peux pas penser à quel point de ma tête. – DevDevDev