From 8ac973bc6117bcfec01d1b864643c395158f0727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=AD=C3=B0ir=20Valberg=20Gu=C3=B0mundsson?= Date: Mon, 16 Jul 2018 16:07:38 +0200 Subject: [PATCH] Iterate over camo_filter and return the first one that returns results! (#243) --- src/camps/mixins.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/camps/mixins.py b/src/camps/mixins.py index 46a61144..e16dd840 100644 --- a/src/camps/mixins.py +++ b/src/camps/mixins.py @@ -17,8 +17,16 @@ class CampViewMixin(object): def get_queryset(self): queryset = super(CampViewMixin, self).get_queryset() if queryset: - camp_filter = {self.model.get_camp_filter(): self.camp} - return queryset.filter(**camp_filter) + camp_filter = self.model.get_camp_filter() + + # Let us deal with eveything as a list + if isinstance(camp_filter, str): + camp_filter = [camp_filter] + + for _filter in camp_filter: + result = queryset.filter(**{_filter: self.camp}) + if result.exists(): + return result # Camp relation not found, or queryset is empty, return it unaltered return queryset