问题是我的形式是动态的。每次根据DB中的数据可能有不同数量的字段。我可以手动渲染此表单(通过将属性和类型作为上下文传递给模板)。但是如何处理django中按下提交按钮的操作?
答案 0 :(得分:1)
假设你已经在views.py中有一个函数来渲染模板,你基本上必须验证是否有任何数据发布:
def contact(request): # let's say it's a contact form
if request.method == 'POST': # If the form has been submitted...
print(request.POST)
# do your things with the posted data
else: # form not posted : show the form.
return render(...)
另请注意,您必须在模板内的{% csrf_token %}
和<form>
之间的任意位置手动添加</form>
,这基本上会添加隐藏字段以保护您的网站免受跨网站请求伪造攻击。
如果您这样做,请不要在表单中放置任何action
属性,以便将其发布到相同的网址。