J'ai un modèle Django appelé Collection qui représente une collection d'éléments (CollectionItem). Chaque collection contient uniquement des éléments d'un type spécifique. (CollectionItem a une clé étrangère à Collection). Je veux obtenir tous les CollectionItems qui sont dans les listes à indicateur public d'un type spécifique et les renvoyer triés par un champ particulier. Voici le code de requête que j'utiliser:Est-ce que concaténer Django QuerySets dans une boucle la bonne chose à faire?
lists = Collection.objects.filter(is_public=True, type=7)
items = CollectionItem.objects.none()
for list in lists:
items |= CollectionItem.objects.filter(collection=list)
items = items.order_by('name')
je dois imaginer que ce ne sera pas l'échelle bien du tout quand j'ai une grande base de données avec des tonnes de listes et d'articles. Y a-t-il une meilleure façon de le faire dans Django? Ou est l'inefficacité impliquée dans la boucle de requête assez négligeable par rapport à d'autres options que je ne devrais pas trop m'inquiéter?
Nice, je vous remercie. C'est beaucoup plus joli. –