Her*_*sua 5 zope plone grok z3c.form
我正在尝试为Plone网站构建一个表单包.我目前正在使用Plone 4.3.在我使用Dexterity和five.grok和grok库之前.但在阅读了本文的Plone 4.3迁移和five.grok依赖部分之后:http://developer.plone.org/components/grok.html看起来Plone开发人员正在逐渐停止使用grok .
那么我是否应该放弃使用Grok?如果所有当前文档目前都在使用Grok,我将如何这样做呢?此外,我正在从基于Windows的机器开发.
首先在没有 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 _
Run Code Online (Sandbox Code Playgroud)
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"
)
Run Code Online (Sandbox Code Playgroud)
class AddFormAdapter(object):
interface.implements(AddFormSchema)
component.adapts(interface.Interface)
def __init__(self, context):
self.what = None
self.where = None
Run Code Online (Sandbox Code Playgroud)
class AddForm(AutoExtensibleForm, form.Form):
schema = AddFormSchema
form_name = 'add_content'
Run Code Online (Sandbox Code Playgroud)
class AddButton(layout.FormWrapper):
"""Add button"""
form = AddForm
Run Code Online (Sandbox Code Playgroud)
<adapter factory=".my.AddFormAdapter"/>
<browser:page
for="*"
name="my.addbutton"
class=".my.AddButton"
template="addbutton.pt"
permission="zope2.View"
/>
Run Code Online (Sandbox Code Playgroud)
如果你离开 grok:
这取决于你在做什么。对于插件我说是,但对于项目,这取决于你。
Grok 并不是已经很大的 Zope 的一部分。因此,只有在需要时才应该添加依赖项。Grok 是一个选项,所以我从未使用过它。
| 归档时间: |
|
| 查看次数: |
290 次 |
| 最近记录: |