django发布回复令牌不发布数据
我正在从Django DB内容动态生成的网页发布帖子。 数据放在组合框中,应该将客户ID发回给Django,以便我可以解析更多查询,然后仅显示选定的客户数据。
然而,不要重新发布我的发布数据,它会返回csrf标记而不是发布的数据。
<form method='post' action='' id='customers'>
{% csrf_token %}
<select>
{% for item in customer %}
<option value={{ item.customer_id }} name='customer_id'>{{ item.customer_name }}</option>
{% endfor %}
<input type = 'submit' value='Edit'>
</select>
{{ post }}
{{post.customer_id}} #doesnt work either.
这就是它返回的结果:
<QueryDict: {u'csrfmiddlewaretoken': [u'CpzKrwmZsmfiiNHngNWDFSNxqUoBykYO']}>
def portal(请求):
customers = Customer.objects.all()
if request.method == 'POST':
vm_groups = Vm_group.objects.all()
vms = Vm.objects.all()
selected_customer = request.POST.copy()
#selected_customer_id = selected_customer['customer_id']
post = selected_customer
context = Context({'customer': customers, 'vm_groups':vm_groups, 'vms':vms, 'post':post,
})
return render(request, 'portal.html', context)
else:
context = Context({'customer': customers,})
return render(request, 'portal.html', context)
一旦它正常工作,我怎样从返回的数据中得到customer_id?
selected_customer = request.POST.copy()
selected_customer_id = selected_customer['customer_id']
像这样?
您需要将name
属性放在select
元素上,而不是option
。
但是,无论如何,你可能应该使用Django的表单框架。
正如@Daniel所说的那样,您需要添加名称字段来选择标签而不是选项标签,
<select name='customer_id'>
{% for item in customer %}
<option value={{ item.customer_id }} >{{ item.customer_name }}</option>
{% endfor %}
<input type = 'submit' value='Edit'>
</select>
链接地址: http://www.djcxy.com/p/56545.html
上一篇: django post returning token not post data
下一篇: How to send request from one django server to another server