Кажется, какой-то SQL оказался полезным ... если у кого-то есть идея, как это сделать в Django ORM, я был бы счастлив попробовать эту идею.Вот что у меня есть:
Я наткнулся на эту удобную ссылку , показывающую, как запустить слегка сложный SQL из Django.Таким образом, используя этот запрос, я использовал этот запрос, чтобы вывести вопросы и ответы для каждого из них:
question_list = query_to_dict("""
SELECT question_id, question, item, array_agg(pass_fail) AS results
FROM "vehicles_inspectionresult"
INNER JOIN "vehicles_inspectionquestion" ON
("vehicles_inspectionresult"."question_id" = "vehicles_inspectionquestion"."id")
INNER JOIN "vehicles_inspectionitem" ON
("vehicles_inspectionquestion"."item_id" = "vehicles_inspectionitem"."id")
WHERE "vehicles_inspectionresult"."vehicle_id" = %s
GROUP BY item, question_id, question
ORDER BY item;
""", vehicle.id)
Переменная pass_fail
является дополнением к классу InspectionResult
... она предназначена для определения, является ли ответявляется правильным или нет, сравнивая ответ на вопрос с тем, что было опубликовано при сохранении.
Остальное - в основном шаблонный код для группировки вопросов в их конкретные группы элементов с использованием тега шаблона {% regroup %}
Джанго, но основная логика вНа мой взгляд, это линия выше.Я надеюсь, что это поможет кому-то в будущем.