首先在没有grok的情况下创建表单并不难,也不依赖于您的操作系统。
创建表单总是一样的。以下是我的操作方法:
from Products.Five.browser import BrowserView
from plone.autoform.form import AutoExtensibleForm
from plone.app.z3cform import layout
from zope import interface
from zope import schema
from zope import component
from z3c.form import form
from collective.my.i18n import _
class AddFormSchema(interface.Interface):
what = schema.Choice(
title=_(u"What"),
vocabulary="plone.app.vocabularies.UserFriendlyTypes"
)
where = schema.Choice(
title=u"Where",
vocabulary="collective.my.vocabulary.groups"
)
class AddFormAdapter(object):
interface.implements(AddFormSchema)
component.adapts(interface.Interface)
def __init__(self, context):
self.what = None
self.where = None
class AddForm(AutoExtensibleForm, form.Form):
schema = AddFormSchema
form_name = 'add_content'
class AddButton(layout.FormWrapper):
"""Add button"""
form = AddForm
<adapter factory=".my.AddFormAdapter"/>
<browser:page
for="*"
name="my.addbutton"
class=".my.AddButton"
template="addbutton.pt"
permission="zope2.View"
/>
如果你离开格罗克:
这取决于你在做什么。对于一个插件,我说是的,但对于一个项目,这取决于你。
Grok并不是已经很大的Zope的一部分。因此,只有在需要时才应该添加依赖项。Grok是一个选项,所以我从未使用过它。