在页面中添加两个表单(plone)

时间:2014-08-21 10:07:54

标签: python forms plugins plone

我正在为Plone开发一个插件。我必须在一个页面中显示两种不同的形式:两个完整的不相交的表单将提交到两个不同的页面。我已经按照本教程http://docs.plone.org/develop/addons/helloworld/extend/form.html进行了操作,但由于我对Plone开发的实际知识不足,我无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:2)

如果您不是Zope专家并且确实希望在同一视图中提供两种不同的表单(但请允许我说上面评论中的建议是好的:您确定真的需要这个?)我建议你不要使用z3c.form

您可以保持简单并自己绘制HTML。

1-注册新视图

请参阅http://docs.plone.org/develop/plone/views/browserviews.html#creating-a-view-using-zcml

2-在模板中使用简单的HTML,并添加两种形式:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
      xmlns:tal="http://xml.zope.org/namespaces/tal"
      xmlns:metal="http://xml.zope.org/namespaces/metal"
      metal:use-macro="context/main_template/macros/master">
<body>

<metal:content-core fill-slot="content-core">
    <metal:content-core define-macro="content-core">

       <form action="@@endpoint1" method="post">
           <!-- your HTML here -->
       </form>

       <form action="@@endpoint2" method="post">
           <!-- your HTML here -->
       </form>

    </metal:content-core>
</metal:content-core>

</body>
</html>

如果您不需要静态HTML(这是一种非常罕见的情况),了解TAL将会对您有所帮助。

3-添加另外两个视图(endpoint1endpoint2),您可能不需要提供任何模板,但只需要一些逻辑。


这很简单,你可以快速启动...... 你必须处理自己的验证和服务器端重定向。可悲的是,z3c.form可以为你简化很多这样的事情。