diff --git a/src/pretix/base/forms/questions.py b/src/pretix/base/forms/questions.py index 523382cac4..84d359f2b9 100644 --- a/src/pretix/base/forms/questions.py +++ b/src/pretix/base/forms/questions.py @@ -348,6 +348,8 @@ class BaseQuestionsForm(forms.Form): question_cache = {f.question.pk: f.question for f in self.fields.values() if getattr(f, 'question', None)} def question_is_visible(parentid, qvals): + if parentid not in question_cache: + return False parentq = question_cache[parentid] if parentq.dependency_question_id and not question_is_visible(parentq.dependency_question_id, parentq.dependency_values): return False diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index fe073b8b26..0aa8450f50 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -1043,6 +1043,8 @@ class AbstractPosition(models.Model): } def question_is_visible(parentid, qvals): + if parentid not in question_cache: + return False parentq = question_cache[parentid] if parentq.dependency_question_id and not question_is_visible(parentq.dependency_question_id, parentq.dependency_values): return False diff --git a/src/pretix/presale/checkoutflow.py b/src/pretix/presale/checkoutflow.py index d920605db8..59ae609d89 100644 --- a/src/pretix/presale/checkoutflow.py +++ b/src/pretix/presale/checkoutflow.py @@ -441,6 +441,8 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep): } def question_is_visible(parentid, qvals): + if parentid not in question_cache: + return False parentq = question_cache[parentid] if parentq.dependency_question_id and not question_is_visible(parentq.dependency_question_id, parentq.dependency_values): return False