2010-11-30 3 views
0

Wie kann ich die Schnittstelle querySet für zwei oder mehr Modelle verwenden?
zum Beispiel:multiple queryset

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, []) 

aber jetzt kann ich nicht querysets Methoden verwenden, wie order_by, zum Beispiel
wie sonst ich von verschiedenen Modellen erhalten Liste der Objekte können?

+0

ok. und was ist der beste Weg meine Liste nach Preisen zu sortieren? – JIoJIaJIu

Antwort

1

Sie können nicht. Ein Abfrage-Set ist eine geordnete Sammlung von Instanzen eines einzelnen Modelltyps. Es gibt keine Abfragegruppe für mehrere Modelle.

+0

+1, und es ist auch sehr eng mit dem 'Model' Konzept verbunden! http://code.djangoproject.com/browser/django/trunk/django/db/models/query.py#L31 Kann nicht einmal manuell Ihr eigenes generisches 'QuerySet' erstellen, um dieses Problem zu lösen, es sei denn, Sie reduzieren es auf ein gemeinsames Problem Modell. –