【发布时间】:2014-10-08 09:31:18
【问题描述】:
这几天我正在接近 Plone。我用表单构建了一个页面。
我想禁用 plone 主模板(不仅是表单模板)并构建我自己的页面(使用 .pt 文件)。我怎样才能做到这一点?
from Products.statusmessages.interfaces import IStatusMessage
from z3c.form import button
from z3c.form import form, field
from zope.interface import Interface
from zope.schema import TextLine
from zope.i18nmessageid import MessageFactory
_ = MessageFactory('hello_world')
class IHelloWorldForm(Interface):
hello_world_name = TextLine(
title=_(u'Name'),
description=_(u'Please enter your name.'),
required=False)
class HelloWorldForm(form.Form):
fields = field.Fields(IHelloWorldForm)
ignoreContext = True
def updateWidgets(self):
super(HelloWorldForm, self).updateWidgets()
@button.buttonAndHandler(u'Save')
def handleSave(self, action):
data, errors = self.extractData()
if errors:
return False
if data['hello_world_name'] is not None:
hello_name = data['hello_world_name']
else:
hello_name = 'World'
IStatusMessage(self.request).addStatusMessage(
"Hello %s" % hello_name,
'info')
redirect_url = "%s/@@hello_world_form" % self.context.absolute_url()
self.request.response.redirect(redirect_url)
@button.buttonAndHandler(u'Cancel')
def handleCancel(self, action):
IStatusMessage(self.request).addStatusMessage(
"Hello No One",
'info')
redirect_url = "%s/@@hello_world_form" % self.context.absolute_url()
self.request.response.redirect(redirect_url)
from plone.z3cform.layout import wrap_form
HelloWorldFormView = wrap_form(HelloWorldForm)
【问题讨论】:
-
请同时发布导入。
-
什么意思?我不明白你在问什么
-
我已经编辑过了。现在更清楚了吗?
-
那里没有问题。你在问什么?
-
您是否在
<browser:page>的<browser:page>声明中看到任何迹象表明您的表单不支持template="..."属性?
标签: forms templates view plone