from AccessControl import Unauthorized
from zope.publisher.browser import BrowserPage
class PostOnlyPage(BrowserPage):
def update(self):
if not self.request.method == 'POST':
raise Unauthorized
def render(self):
return 'A POST only render'
def __call__(self):
self.update()
return self.render()
如果这样做是为了使现有库(如z3c.form)强制执行访问方法,则可以考虑执行以下操作:
class StrictPostForm(z3c.form.form.PostForm):
def update(self):
if not self.request.method == 'POST':
raise Unauthorized
super(StrictPostForm, self).update()
对于“只发布”保护,您还可以使用plone.protect的内部功能:
而对于
accept
头,我担心您必须手动检查请求数据。你知道吗通常,大多数视图都遵循更新/渲染模式,一般来说,在update方法中放置一个公共位置来执行权限/访问/数据完整性检查是有意义的,就像其他各种库一样。完整的演示如下:
如果这样做是为了使现有库(如
z3c.form
)强制执行访问方法,则可以考虑执行以下操作:相关问题 更多 >
编程相关推荐