2010-11-30 5 views
0

Comment puis-je utiliser l'interface querySet pour deux modèles et plus?
par exemple:multi-query

assortments = get_list_or_404(Assortment, [some_list]) #this is content_types of each models 
category = [ assortment.type.model_class() for assortment in assortments ] 
all_goods = map(lambda cl: cl.objects.filter(has_shop=True, **kwargs).distinct(), category) 
all_goods = reduce(lambda l,l1: l.extend(l1) or l, all_goods, []) 

mais maintenant je ne peux pas utiliser les méthodes de QuerySets, comme order_by, par exemple
comment puis-je obtenir la liste des objets à partir de différents modèles?

+0

ok. et quelle est la meilleure façon de trier ma liste par les prix par exemple? – JIoJIaJIu

Répondre

1

Vous ne pouvez pas. Un jeu de requête est une collection ordonnée d'instances d'un seul type de modèle. Il n'y a pas de queryset de plusieurs modèles.

+0

+1, et il est très étroitement couplé au concept 'Model' aussi bien! http://code.djangoproject.com/browser/django/trunk/django/db/models/query.py#L31 Vous ne pouvez même pas créer manuellement votre propre 'QuerySet' générique pour gérer cela, sauf si vous le réduisez à un commun modèle. –