编写第一个Django程序(3)
ok,我们接着之前的第3篇,开始我们的最后一篇.

创建一个简单的表单

我们修改一个测试页面的模板(polls/detail.html).

<h1>{{ poll.question }}</h1>

{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}

<form action="/polls/{{ poll.id }}/vote/" method="post">
{% csrf_token %}
{% for choice in poll.choice_set.all %}
    <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
    <label for="choice{{ forloop.counter }}">{{ choice.choice }}</label><br />
{% endfor %}
<input type="submit" value="Vote" />
</form>

简单说明一下:

1.上面的模板用单选框来展示一个民意测试的所有投票项.它的值就是对应的ID,他的名称就是对应选项的名称,他的作用就是当选中一个选项,然后提交表单,他将会传送一个post数据,choice=3

2. 我们把这个表单的action写作' 

/polls/{{ poll.id }}/vote/

',方法写为post.

3. forloop.counter指明循环多少次.

4. 既然我们创建了一个提交数据的表单,我们就需要关心注意 一下Cross site request forgeries.不错的是,你不需要担心怎么实现.Django已经内建通过支持了.简单的说,就是所有的post表单都指向到内部的一个地址,我们使用{% csrf_token%}标签完成.

阅读剩余部分