总结一下,我的数据库结构是这样的:
test
|_ question
|_ choice
|_ choice
|_ choice
|_ question
|_ choice
|_ choice
|_ choice
现在我想在一个页面上显示每个问题的所有选择。
我的views.py:
def index(request):
data = {
'greeting': 'Welcome User!',
'form_test': forms.TestForm,
'form_question': forms.QuestionForm,
'form_choice': forms.ChoiceForm,
'test': models.Test.objects.get(pk=1),
'questions': models.Question.objects.filter(test_id__exact=1),
}
questions = models.Question.objects.filter(test_id=1)
for question in questions:
data['choices_{}'.format(question.id)] = models.Choice.objects.filter(question_id=question.id)
print(data)
return render(request, 'et_app/index.html', context=data)
所以从技术上来说,如果我有两个问题,我的data问题会是这样的:
{
...
'choices_1': ...
'choices_2': ...
...
}
现在,我的问题是choices在模板上显示这些。我试过:
{% for question in questions %}
<h4>Q: {{ question.content }}</h4>
<p>Choices:</p>
<ul class="list-group">
{% for choice in 'choices_{}'.format(question.id) %}
<li class="list-group-item">{{ choice.content }}</li>
{% endfor %}
</ul>
{% endfor %}
它只是破坏了整个事情。我对 Django 比较陌生,所以请原谅我的天真。我怎样才能解决这个问题?多谢!
萧十郎
相关分类