捕获多个radiobox选择Django的结果

时间:2011-04-17 01:09:03

标签: django forms

这里总计新...

我正在进行投票,我在一个页面上显示5个问题。每个问题都有4个放射性物体。

在我的django模板中,我循环遍历所有问题的容器(latest_poll_list)(民意调查):

    <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="choice{{ forloop.counter }}" value="{{ choice.id }}" />
            <label for="choice{{ forloop.counter }}">{{ choice.choice }}</label><br />
        {% endfor %}
{% endfor %}
    <input type="submit" value="Vote" />
</form>

最后,如何从多个问题返回结果?我是否必须将选项+ poll.id放入数组/容器中?

另外,django如何知道forloop.counter是指内循环而不是外循环? 感谢您在我加速时的耐心!

1 个答案:

答案 0 :(得分:0)

我会考虑使用formsetmodel formset

和forloop.counter用于最内部的forloop,但是你可以使用{% with %}标签将计数器从外部forloop传递到内部forloop:

{% for object in objects %}
    <label>{{ forloop.counter }}</label>
    {% with outside_counter=forloop.counter %}
    {% for subobject in object %}               
    <p>outside: {{ outside_counter }} inside: {{ forloop.counter }}</p>
    {% endfor %}
    {% endwith %}
{% endfor %}

结果:

<label>0</label>
<p>outside: 0 inside: 0</p>
<p>outside: 0 inside: 1</p>
<label>1</label>
<p>outside: 1 inside: 0</p>
<p>outside: 1 inside: 1</p>
...