Ребят, всем привет.
Задача: Общая модель статьи - к ней цепляется через ForeignKey 3 вопроса - к каждому вопросу через ForeignKey цепляется 3 варианта ответов.
Моя реализация:
1) Я через url паттерн передаю question1_id
url(r'^question(?P<question1_id>[0-9]+)$', 'bakot.views.question', name='question')
2) Пишу вьюшку, в которой хочу сделать логику:
- загружается статья,
- через фильтр выбираю вопросы, которые относятся к этой статье.
- через фильтр выбираю ответы, которые относятся к каждому конкретному вопросу.
def question(request, question1_id):
stepfields = get_object_or_404(Step, id = question1_id)
questionship = Question.objects.filter(step_id = question1_id)
answership = Answer.objects.filter(question_id = question1_id)
context = {
"stepfields" : stepfields,
"questionship" : questionship,
"answership" : answership,
}
return render(request, 'bakot/question.html', context)
Проблема: Статья отображается, вопросы отображаются, ответы отображаются (
но это все ответы принадлежат одному вопросу, т.е. они повторяются в трех вопросах).
т.е. получается, что фильтр идет по question_id = 1
Модель базы данных ответов для одного вопроса (выводятся на странице только ответы с question_id = 1 )
Что пробовал:
В базе данных вопроса, есть параметр: id.
Я думаю так, сначала мы отсеиваем все вопросы, которые принадлежат данной статье, а потом передаем их id в фильтр вывода вопросов.
По типу:
def question(request, question1_id):
stepfields = get_object_or_404(Step, id = question1_id)
questionship = Question.objects.filter(step_id = question1_id)
answership = Answer.objects.filter(question_id = questionship.id) # 1 попытка
answership = Answer.objects.filter(question_id = questionship(request(id))) #2 попытка
context = {
"stepfields" : stepfields,
"questionship" : questionship,
"answership" : answership,
}
return render(request, 'bakot/question.html', context)
В итоге, это не работает.
Можно конечно, просто ручками задать там id, но это я считаю - не есть хорошо.