我有一个模板两个完全不同的形式。如何处理它们在一个视图?我怎样才能区分哪些的形式提交?如何使用前缀acomplish是什么?或者,也许这是最好编写单独的看法?搜索结果 至于结果 CHRISS

有帮助吗?

解决方案

就个人而言,我会使用一个视图来处理每个表单的POST。

在另一方面,可以使用指示使用了哪个形式的隐藏输入元件

<form action="/blog/" method="POST">
    {{ blog_form.as_p }}
    <input type="hidden" name="form-type" value"blog-form" /> <!-- set type -->
    <input type="submit" value="Submit" />
</form>

... 

<form action="/blog/" method="POST">
    {{ micro_form.as_p }}
    <input type="hidden" name="form-type" value"micro-form" /> <!-- set type -->
    <input type="submit" value="Submit" />
</form>

使用的图像:

def blog(request):
    if request.method == 'POST':
        if request.POST['form-type'] == u"blog-form":   # test the form type
            form = BlogForm(request.POST) 
            ...
        else:
            form = MicroForm(request.POST)
            ...

    return render_to_response('blog.html', {
        'blog_form': BlogForm(),
        'micro_form': MicroForm(),
    })

...但再一次,我想每个表单(即使该视图只接受帖)一个视图比试图做上述简单。

其他提示

像阿亚兹说,你应该给唯一的名称,形成提交按钮

<form action="." method="post">
......
<input type="submit" name="form1">
</form>


<form action="." method="post">
......
<input type="submit" name="form2">
</form>


#view

if "form1" in request.POST:
    ...
if "form2" in request.POST:
    ...

如果这两种形式是完全不同的,它肯定不会伤害有它们由两个不同的观点来处理。否则,您可以使用“隐藏的输入元素”伎俩的 zacherates 的已上眼。或者,你总是可以给每个submit元素的唯一命名,并以何种形式的基础上,提交的观点分化。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top