From 1b6ac1a34f00ed9d54282ae7ec5760978c390f03 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Tue, 16 Apr 2013 00:12:22 +0200 Subject: [PATCH] fix intrument search --- telemeta/models/query.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/telemeta/models/query.py b/telemeta/models/query.py index de634b79..1c51119d 100644 --- a/telemeta/models/query.py +++ b/telemeta/models/query.py @@ -206,14 +206,15 @@ class MediaItemQuerySet(CoreQuerySet): def by_instrument(self, name): "Find items by instrument" from telemeta.models.instrument import Instrument - instruments = Instrument.objects.filter(name=name) - items = [] - for instrument in instruments: - performances = instrument.performances.all() + from telemeta.models.media import MediaItemPerformance + instruments = Instrument.objects.filter(name__contains=name) + print instruments + if instruments: + perf = [] + performances = MediaItemPerformance.objects.filter(instrument__in=instruments) for performance in performances: - items.append(performance.media_item) - return items - + perf.append(performance) + return self.filter(performances__in=perf).distinct() class MediaItemManager(CoreManager): "Manage media items queries" @@ -356,7 +357,7 @@ class MediaCollectionQuerySet(CoreQuerySet): def by_instrument(self, name): "Find collections by instrument" from telemeta.models.instrument import Instrument - instruments = Instrument.objects.filter(name=name) + instruments = Instrument.objects.filter(name__contains=name) items = [] for instrument in instruments: performances = instrument.performances.all() -- 2.39.5