Python Django手动创建和提交表单

Python Django手动创建和提交表单,python,django,forms,post,Python,Django,Forms,Post,问题是我的形式是动态的。根据数据库中的数据,每次都可能有不同数量的字段。我能够手动呈现此表单(通过将属性和类型作为上下文传递给模板)。但是我如何处理在django中按submit按钮的操作呢?假设您已经在views.py中有了一个函数来呈现模板,那么您基本上只需要验证是否发布了任何数据: def contact(request): # let's say it's a contact form if request.method == 'POST': # If the form has

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

假设您已经在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\u token%}
,这基本上添加了一个隐藏字段,以保护您的站点免受跨站点请求伪造攻击


如果您这样做,只需在表单中不添加任何
操作
属性,这样它就可以发布到同一url。

假设您已经在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\u token%}
,这基本上添加了一个隐藏字段,以保护您的站点免受跨站点请求伪造攻击


如果你这样做,就不要在表单中添加任何
action
属性,这样它就会发布到同一个url。

我还有两个问题!如何获取所有已发布的值?基于类的视图可以吗?
request.POST.get('field\u name')
关于基于类的视图,请检查:我还有两个问题!如何获取所有已发布的值?是否可以使用基于类的视图?
request.POST.get('field_name')
关于基于类的视图,请检查以下内容: