我实现的是一个课程评价页面,但如何将评价信息通过form提交到django的view中呢?
评价页面如下:
此页面源码中怎样获取表格中的所有评价信息,使用request.POST['crseEval']只能获取一行数据。我使用request.POST输出时可显示评价列所有信息,但具体使用request.POST['crseEval']却只能有一个评价信息。
<form action='{% url "eval" evalStuId %}' method="post" role="form">
{% csrf_token %}
<table class="table">
<thead>
<tr>
<th>
课程编号
</th>
<th>
名称
</th>
<th>
任课教师
</th>
<th>
评价
</th>
</tr>
</thead>
<tbody>
{% for i in content %}
<tr class="success" name={{i.crseId}}>
<td>
{{ i.crseId }}
</td>
<td>
{{ i.crseName }}
</td>
<td>
{{ i.crseTeacher }}
</td>
<td>
<div>
<div >
<select name="crseEval">
{% for eval in evalList %}
<option value={{eval}}>{{eval}}</option>
{% endfor %}
</select>
</div>
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
折腾了半天算是解决了,reqeust.POST[key]在queryDict中只能获取最后一个值,getlist(key)则可获取所有的值。
对于获取表格中的值,可通过先获得指定顺序评价信息,又因评价页面显示课程的顺序与查询数据库中指定课程的顺序相同,因此可通过在view层中将课程信息与评价信息通过zip组合进行迭代,修改课程表中的评价信息通过save()保存指定记录即可。