我正在用表格做一些工作,我相信我做错了什么,我的表格现在没有显示,我做了4个不同的页面,每个页面都有不同的表格。
当我打开页面并检查页面来源时,表单的输入显示为
<form role="form" method = 'post'><input type='hidden' name='csrfmiddlewaretoken' value='4VlAtXgpblSSq5tkugStVWKWYtZ6rd8A' />
<input type='submit'>
</form>
type =&#39;隐藏&#39;如你看到的。这些是我的观点:
def add_venta(request):
ventaForm = VentaForm(request.POST or None)
if ventaForm.is_valid():
save_it = ventaForm.save(commit=False)
save_it.save()
return redirect("/venta/")
return render_to_response("venta.html",locals(),context_instace=RequestContext(request))
def add_compra(request):
rotate_token(request)
compraForm = CompraForm(request.POST or None)
if compraForm.is_valid():
save_it = compraForm.save(commit=False)
save_it.save()
return redirect("/compra/")
return render_to_response("compra.html",locals(),context_instance=RequestContext(request))
def add_accion(request):
accionForm = AccionForm(request.POST or None)
if accionForm.is_valid():
save_it = accionForm.save(commit=False)
save_it.save()
return redirect("/accion/")
return render_to_response("accion.html",locals(),context_instance=RequestContext(request))
def add_banco(request):
bancoForm = BancoForm(request.POST or None)
if bancoForm.is_valid():
save_it= bancoForm.save(commit=False)
save_it.save()
return redirect("/banco/")
return render_to_response("banco.html",locals(), context_instance=RequestContext(request))
每个视图的.html文件
banco.html
<form role="form" method = 'post'>{% csrf_token %}
{{ banco.as_p }}
<input type='submit'>
compra.html
<form role="form" method = 'post'>{% csrf_token %}
{{ compra.as_p }}
<input type='submit'>
venta.html
<form role="form" method = 'post'>{% csrf_token %}
{{ venta.as_p }}
<input type='submit'>
accion.html
<form role="form" method = 'post'>{% csrf_token %}
{{ accion.as_p }}
<input type='submit'>
答案 0 :(得分:0)
您需要在模板中使用与视图中相同的变量名称。
例如,在视图中
ventaForm = VentaForm(request.POST or None)
所以在模板中你应该使用
{{ ventaForm.as_p }}
您问题中的隐藏输入来自csrf令牌。这是一个安全功能,可以隐藏。