我有一个像这样的html模板:
<table border="1" align="center">
{% for result in result %}
<tr>
<td><input type="checkbox" name="choice" id="choice{{ forloop.counter }}" value="{{ choice }}" /></td>
<td><label for="choice{{ forloop.counter }}">{{ choice }}</label><br /></td>
<td>{{ result.file_name }}</td>
<td>{{ result.type }}</td>
<td>{{ result.size }}</td>
<td>{{ result.end_date }}</td>
<td>{{ result.source }}</td>
{% endfor %}
</tr>
</table>
{{ c }}
<h4><a href="/delete_files/">Delete File</a></h4>
result variable
来自:
def uploaded_files(request):
log_id = request.user.id
b = File.objects.filter(users_id=log_id, flag='F') #Get the user id from session .delete() to use delete
return render_to_response('upload.html', {'result': b}, context_instance=RequestContext(request))
这是我尝试从模板中选择值的地方:
def delete_files(request):
log_id = request.user.id
choices = request.POST.getlist('choice') #Get the file name from the as a list
for i in choices:
File.objects.filter(users_id=log_id, file_name=i).update(flag='D')
return render_to_response('upload.html', {'c': choices}, context_instance=RequestContext(request))
答案 0 :(得分:5)
选择后包含[]因为您正在获取数组表单请求
choices = request.POST.getlist('choice[]')
这将解决你的问题
答案 1 :(得分:3)
正如Rohan在评论中提到的,模板中没有<form>
标记,并且似乎只是假设点击普通<a>
链接会提交一些数据。这根本不是它的工作原理:如果你想从输入元素提交数据,它们需要在<form>
内,你需要适当地设置该表格的action
,你需要提交它使用<input type="submit">
(或button
)而不是链接。
这是基本的HTML,顺便说一下,不是Django。