Plone 自定义视图的遍历错误
使用定制产品处理Plone 3.3.6实例,该产品应显示flv类型的视频。我正试图找出从哪里开始排除这个遍历错误。我确信这在Plone 3.1.x上起了作用(尽管我确实有很好的想象力) 我是如何处理这件事的:Plone 自定义视图的遍历错误,plone,traversal,Plone,Traversal,使用定制产品处理Plone 3.3.6实例,该产品应显示flv类型的视频。我正试图找出从哪里开始排除这个遍历错误。我确信这在Plone 3.1.x上起了作用(尽管我确实有很好的想象力) 我是如何处理这件事的: 一般来说,在前台模式下启动我的实例进行故障排除(bin/instance fg)非常有用 在这个版本上是一个绝对的救命稻草(plone.app.z3cform 0.4.3没有固定选项,但0.4.9已经足够接近了。因此,我仍然必须在构建的[versions]部分明确固定0.4.3 回答我自己
回答我自己的问题 该问题与viewlet有关,与我试图访问的视图关联 viewlet在名为“评估输入”的模板中引用了自定义z3c.form,因此这部分回溯:
- URL: assessment_input
- Line 12, Column 4
我知道这一点是肯定的,因为当我在自定义产品的browser/configure.zcml中通过注释暂时禁用了有问题的viewlet时,视图开始工作(当然没有显示viewlet)
基于z3c.form的表单在plone中的呈现方式在plone.z3cform及更高版本的0.5.8中发生了变化(此处记录:),在0.5.8之前的plone.z3cform版本中,过去可以通过调用viewlet模板中的“视图/内容”来呈现表单。回溯意味着更新的plone.z3cform(不支持“查看/内容”约定)导致错误
- Expression: <PathExpr standard:'view/contents'>
<snip> ...
- __traceback_info__: (<Products.Five.viewlet.metaconfigure.MyFormWrapper object at 0xe4c36cc>, 'contents', [])
TraversalError: (<Products.Five.viewlet.metaconfigure.MyFormWrapper object at 0xe4c36cc>, 'contents')
正如问题中提到的,我使用一个好的py已知好集(KGS)固定了plone.app.z3cform 0.4.9的版本,我认为这是必要的,但还没有完全测试它
现在这是一个足够好的解决方案,向前看,我需要为我的产品的较新版本重写viewlet,以便在升级到Plone 4.x时,viewlet支持Plone.z3cform较新的、可以说更好的呈现表单的方法。回答我自己的问题 该问题与viewlet有关,与我试图访问的视图关联 viewlet在名为“评估输入”的模板中引用了自定义z3c.form,因此这部分回溯:
- URL: assessment_input
- Line 12, Column 4
我知道这一点是肯定的,因为当我在自定义产品的browser/configure.zcml中通过注释暂时禁用了有问题的viewlet时,视图开始工作(当然没有显示viewlet)
基于z3c.form的表单在plone中的呈现方式在plone.z3cform及更高版本的0.5.8中发生了变化(此处记录:),在0.5.8之前的plone.z3cform版本中,过去可以通过调用viewlet模板中的“视图/内容”来呈现表单。回溯意味着更新的plone.z3cform(不支持“查看/内容”约定)导致错误
- Expression: <PathExpr standard:'view/contents'>
<snip> ...
- __traceback_info__: (<Products.Five.viewlet.metaconfigure.MyFormWrapper object at 0xe4c36cc>, 'contents', [])
TraversalError: (<Products.Five.viewlet.metaconfigure.MyFormWrapper object at 0xe4c36cc>, 'contents')
正如问题中提到的,我使用一个好的py已知好集(KGS)固定了plone.app.z3cform 0.4.9的版本,我认为这是必要的,但还没有完全测试它
现在这是一个足够好的解决方案,向前看,我需要为我的产品的更新版本重写viewlet,这样当我升级到Plone 4.x时,viewlet支持Plone.z3cform更新的、可以说更好的呈现表单的方法
- Expression: <PathExpr standard:'view/contents'>
<snip> ...
- __traceback_info__: (<Products.Five.viewlet.metaconfigure.MyFormWrapper object at 0xe4c36cc>, 'contents', [])
TraversalError: (<Products.Five.viewlet.metaconfigure.MyFormWrapper object at 0xe4c36cc>, 'contents')
[versions]
plone.z3cform = 0.5.7