Django手动创建并提交表单

时间:2017-01-18 17:25:02

标签: python django forms post

问题是我的形式是动态的。每次根据DB中的数据可能有不同数量的字段。我可以手动渲染此表单(通过将属性和类型作为上下文传递给模板)。但是如何处理django中按下提交按钮的操作?

1 个答案:

答案 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属性,以便将其发布到相同的网址。