我正在进行多页民意调查。我有一个数据库,其中有一个名为page的列,每个页面有4个问题。用户回答页面上的所有问题后,单击“下一步”并转到下一页。
我可以查询数据库以找出我需要生成的页数,但我不知道如何循环模板渲染过程。
这是我的代码:
用户输入:
def index(request):
latest_poll_list = Poll.objects.filter(page=1)
t = loader.get_template('index.html')
c = Context({
'latest_poll_list': latest_poll_list,
})
return HttpResponse(t.render(c))
...生成此模板:
<ul>
<form action="/first/vote/" method="post">
{% csrf_token %}
{% for poll in latest_poll_list %}
<li>{{ poll.question }}</li>
{% for choice in poll.choice_set.all %}
<input type="radio" name="choice{{ poll.id }}" id="{{poll.id}}choice{{ forloop.counter }}" value="{{ choice.id }}" />
<label for="choice{{ forloop.counter }}">{{ choice.choice }}</label><br />
{% endfor %}
{% endfor %}
<input type="submit" value="Vote" />
</form>
</ul>
...然后在此处处理用户的选择:
def vote(request):
intra_page_key = request.POST['choice1']+','+request.POST['choice2']+','+request.POST['choice3']
request.session['p1'] = intra_page_key
return HttpResponse(request.session['p1'])
如何在民意调查的第2页重复此序列?
答案 0 :(得分:0)
您可能需要查看FormWizard
答案 1 :(得分:0)
#urls.py
(r'^(?P<pollid>\d*)/$', 'app.views.index'),
#views.py
def index(request, pollid):
latest_poll_list = Poll.objects.filter(page=pollid)
t = loader.get_template('index.html')
c = Context({
'latest_poll_list': latest_poll_list,
})
return HttpResponse(t.render(c))
也可以阅读快捷方式“get or 404”
http://docs.djangoproject.com/en/dev/intro/tutorial03/?from=olddocs#a-shortcut-get-object-or-404