2

我正在尝试在我的敏捷内容类型上创建一个自定义的添加表单。我已按照此链接的说明进行操作:http: //plone.org/products/dexterity/documentation/manual/developer-manual/advanced/forms

在我的内容类型中:

class BusinessTransactionFormAddForm(dexterity.AddForm):
    grok.name('ebpls.app.businesstransactionform')

对于我的模板 businesstransactionformaddform.pt,我使用了此链接中的布局:http ://dexterity-developer-manual.readthedocs.org:8000/en/latest/schema-driven-forms/customising-form-presentation/layout-模板.html

我之所以要自定义添加表单,是因为我想插入 jQuery 来计算来自 DataGrid 字段的值。插入javascript没有问题。唯一的问题是,在网页上,它创建了两个表单,分别位于上、下,即相同类型的字段被复制到另一个的底部。我使用的模板有问题吗?有谁知道添加视图的正确模板是什么?谢谢!

4

1 回答 1

3

Dexterity 假定添加表单的模板用于表单而不是整个页面,因此它采用表单模板并将其包装在另一个使用 main_template 的模板中。

由于您的自定义模板确实呈现整个页面,因此您应该使用 form.wrap 指令关闭包装:

from five import grok
from plone.directives import form
from plone.directives import dexterity

class BusinessTransactionFormAddForm(dexterity.AddForm):
    grok.name('ebpls.app.businesstransactionform')
    form.wrap(False)
于 2012-11-23T19:15:44.657 回答