diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py
index 67ecf1794d..c5a35399b4 100644
--- a/src/pretix/base/models/orders.py
+++ b/src/pretix/base/models/orders.py
@@ -1628,14 +1628,17 @@ class AbstractPosition(RoundingCorrectionMixin, models.Model):
self.questions = []
for qc in children:
- if qc.user_datafield_id and qc.user_datafield_id in self.answer_cache:
- qc.answer = self.answer_cache[qc.user_datafield_id]
+ if qc.user_datafield_id:
+ if qc.user_datafield_id in self.answer_cache:
+ qc.answer = self.answer_cache[qc.user_datafield_id]
+ else:
+ qc.answer = ""
#qc.answer.question = qc # cache object
elif qc.system_datafield:
qc.answer = self.get_system_answer(qc.system_datafield)
#qc.answer.question = qc # cache object
else:
- qc.answer = ""
+ continue
if not qc.dependency_question_id or qc_is_visible(qc.dependency_question_id, qc.dependency_values):
self.questions.append(qc)
diff --git a/src/pretix/presale/templates/pretixpresale/event/fragment_question_answer.html b/src/pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
index bb4e0dfd36..ee68f98d0e 100644
--- a/src/pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
+++ b/src/pretix/presale/templates/pretixpresale/event/fragment_question_answer.html
@@ -1,7 +1,8 @@
{% load safelink %}
{% load i18n %}
{% load rich_text %}
-{% if answer %}
+{% if not answer and not question %}
+{% elif answer %}
{% if answer.file %}