2017-01-18 52 views
-2

问题是我的表单是动态的。每次根据数据库中的数据可能有不同数量的字段。我能够手动呈现此表单(通过将属性和类型作为上下文传递给模板)。但是如何处理在django中按下提交按钮的动作?Django手动创建并提交表单

回答

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属性放在你的表单中,以便它发布到相同的URL。

+0

我还有两个问题!我如何获得所有发布的值?基于类的视图有可能吗? –

+0

'request.POST.get('field_name')'关于基于类的视图,请选中:https://docs.djangoproject.com/en/1.10/topics/class-based-views/intro/#handling-forms-与一流的基础-意见 –