在Django表单中循环

Ben*_*Ben 0 python django

我刚刚开始在Django中构建原型应用程序.我最初是通过Django网站上Django应用程序教程开始的,这非常有帮助,并且给了我开始所需要的东西.现在我有几个我希望的非常简单的问题:

我想将一个循环放到views.py中,循环遍历从表单传入的一组变量.所以我在HTML表单中有大量项目,每个项目都有一个SELECT下拉列表供人们选择0-10的分数,如下所示:

<select name="score1">
  <option value=0 SELECTED>No score</option>
  <option value=1>1</option>
  <option value=2>2</option>
  <option value=3>3</option>
  <option value=4>4</option>
  <option value=5>5</option>
  <option value=6>6</option>
  <option value=7>7</option>
  <option value=8>8</option>
  <option value=9>9</option>
  <option value=10>10</option>
</select>
Run Code Online (Sandbox Code Playgroud)

所以,我有100个这样的变量,得分1,得分2,得分3,......,得分99,得分100.提交表单时,我想遍历每个变量并查看它是否已设置(即不是0),如果是,我想将该值存储在数据库中的适当位置.我的问题是我无法弄清楚如何循环这些变量.我猜我想要这样的东西:

for o in request.POST.all

endfor
Run Code Online (Sandbox Code Playgroud)

但后来我真的不知道该怎么做.

我不是在寻找有人为我编写代码,真的:我只是想在python/Django中编写如何编写这样的循环的一些指导,也可能是一些关于良好参考指南的指示我可以看到在线或购买,将让我访问这种东西.

另外,上面的选择对象几乎是手工创建的,我真的希望能够通过循环在模板中首先生成它.我的模板目前有这个:

<table>
{% for movie in movie_list %}
  <tr>
  <td> {{ movie }} </td>
  <td>
       <select name="score{{ movie.id }}">
         <option value=0 SELECTED>No score</option>
         <option value=1>1</option>
         <option value=2>2</option>
         <option value=3>3</option>
         <option value=4>4</option>
         <option value=5>5</option>
         <option value=6>6</option>
         <option value=7>7</option>
         <option value=8>8</option>
         <option value=9>9</option>
         <option value=10>10</option>

       </select>
  </td></tr>

{% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)

我觉得必须有一种方法可以创建一个从1到10的简单循环,这将为我生成大部分选项,但我无法弄清楚如何做到这一点......

S.L*_*ott 7

您需要查看Django 表单.

你永远不应该建立自己的形式.

您应该声明一个包含ChoiceField的Form类,并为该字段提供选择域.从那里开始,一切都会自动发生.

选择BTW应在模型中定义为该模型字段的值范围.

您的页面仅包含{{form}}.Django使用选择构建表单并将选择解码为最终结果.