gpt4 book ai didi

plone - 为什么 getSite() 返回一个 FormlibValidation 对象

转载 作者:行者123 更新时间:2023-12-01 01:26:33 26 4
gpt4 key购买 nike

我在一个空白的 Plone 4.1 站点上安装了collective.quickupload,
并注意到当您添加一个快速上传portlet 时,kss 调用字段验证(plone.app.form.kss),getSite 函数将返回一个FormlibValidation 对象,这会导致快速上传词汇崩溃。

回溯在这里:http://pastebin.com/nvwChpZd

我的问题是:

  • 那(getSite 函数返回 FormlibValidation 对象)是错误还是预期行为?
  • 解决/解决/使collective.quickupload工作的解决方案?
  • 最佳答案

    getSite() 返回最近的组件站点(可以存储本地实用程序的地方),这实际上只是意味着最后一次使用 setSite() 设置的内容,这通常发生在遍历时。

    大多数时候,调用 setSite() 的唯一遍历钩子(Hook)是在您遍历 Plone 站点时触发的钩子(Hook)。但我认为旧的 KSS 内联表单验证机制使用(使用?)一种 hack,它可以动态(在 View 中)创建一个本地组件站点,并在请求的其余部分将其设置为本地站点,以便它可以覆盖某些事物。

    您可以禁用验证(例如禁用 portal_kss 中的相关 KSS 文件)或修复 c.quickupload 以检查 getSite() 的结果是否为 ISiteRoot。如果不是,它应该是获取包装的,所以你可以做 aq_parent(site) (或者可能是 site. parent )来让父级循环,直到你找到一个 ISiteRoot。

    关于plone - 为什么 getSite() 返回一个 FormlibValidation 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7466045/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com