Plone/z3c.form 3.2.1-如何使自动完成小部件(不是必填字段)使用自定义绑定源对象?

2023-12-19

我正在尝试使用绑定的源对象获取自动完成小部件以表单(z3c.form)呈现。

在接口类中:

Parent = schema.Choice(title=u'A Parent',
                       source=ParentSourceBinder(),
                       required=False,
                       default=None)

在我的 form.Form 类中:

fields['Parent'].widgetFactory = AutocompleteFieldWidget    

我正在使用自定义源绑定器,因为我需要从数据库中提取数据。

class ParentSource(object):
    implements(IQuerySource)

    vocabulary = SimpleVocabulary([])
    session = None
    __iter__ = vocabulary.__iter__

    def __init__(self, context):
        self.context=context
        if self.session is None:
            db_utility = queryUtility(IMyDBUtility,name="MyDBUtility")
            self.session = db_utility.session
        self.vocabulary = SimpleVocabulary([SimpleTerm(title='temp',value='temp',token='temp'),])

然后我有 __contains__、getTerm、getTermByToken、搜索函数。

当 required 设置为 false 并且我尝试加载表单时,出现错误:LookupError:--NOVALUE--,它指向在 zope.schema.vocabulary 的 SimpleVocabulary 中找到的 getTermByToken。

通过修改 zope.schema.vocabulary 的 SimpleVocabulary 中的 getTermByToken 函数,我能够确定问题与 z3c.form.browser.radio 有关,其中 AutocompleteFieldWidget 确实使用了无线电集。

我有两个版本的 z3c.form 可用,即 3.0.5 和 3.2.1,如果未在构建中设置版本,则这是默认版本。两个版本的 radio.py 是不同的。当我将 buildout.cfg 中的版本设置为 3.0.5 时,表单将呈现,并且自动完成小部件将 required 设置为 False。 3.2.1 给我留下了 LookupError。

如何让自动完成小部件正常工作,而无需将 required 设置为 true 并同时使用版本 3.2.1?

编辑: 我正在从 plone.formwidget.autocomplete 导入 AutocompleteFieldWidget。 我使用的plone版本是4.3.4.1

Update我发现 3.0.5 和 3.2.1 的 radio_input.pt 文件中有一些有趣的东西,小部件渲染的行是不同的。

3.0.1 有:

   input tal:replace="structure python:view.renderForValue(item['value'])"

3.2.1 有:

   input id="" name="" class="" alt="" title=""
   tabindex="" disabled="" readonly="" accesskey="" value=""
   checked="" type="radio"
   tal:define="checked item/checked"
   tal:attributes="id item/id;
                   name item/name;
                   class view/klass;
                   value item/value;
                   style view/style;
                   title view/title;
                   lang view/lang;
                   ...

当我用 3.0.5 的输入替换 3.2.1 的输入时,小部件工作正常。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Plone/z3c.form 3.2.1-如何使自动完成小部件(不是必填字段)使用自定义绑定源对象? 的相关文章

  • 如何在敏捷类型中对 IDublinCore 的行为进行排序?

    我正在使用 Python Dexterity Type 编写一个产品 并且我有Title and Description 这个字段来自一个行为plone app dexterity behaviors metadata IDublinCor
  • 使 TinyMCE 图像选择对话框指向 Plone 上的默认文件夹

    克隆人 4 1 使 TinyMCE 图像选择器对话框指向站点默认文件夹 image bank 而不是当前文件夹的最简单方法是什么 这个 文件夹显示为相册将为 Plone 轻松提供基本的图像库支持 我希望能够实现这个功能 所有 Plone 开
  • 通过 Dexterity 在字段集之间移动字段

    在 Archetypes 中 为了将字段从字段集 或模式 移动到另一个字段集 或模式 我们可以执行以下操作 schema creators schemata default 然而 我并没有使用敏捷来实现同样的目标 我尝试过使用表单提示 前任
  • 无法在 Centos 上使用 Diazo (plone.app.theming)

    我使用 plone4 1 和 Diazo 在我的 mac 上制作了一个门户网站 现在 我正在尝试将其部署在我的服务器 CentOs 上 其中还有另一个带有 plone4 0 5 Collectivexdv 的站点 当我使用我的重氮主题运行该
  • 构建可以创建内容作为 Plone 安装的一部分吗?

    我正在尝试为站点实现 Plone 的可重复部署 并使用构建 基本上遵循 Martin Aspeli 的书专业Plone 4开发 我可以使用我的源产品设置系统
  • 如何将 plone 的内容块插入到重氮主题中

    我在 Plone 4 1 中使用重氮 当前为 plone app theming 1 0b1 r48205 我想完全使用 Plone 的 html 作为搜索小部件 除了我想替换
  • tinyMCE 编辑栏未显示

    我正在运行 Plone 4 1 4 当我尝试编辑用于显示tinyMCE 编辑器的文本区域时 我得到的只是一个列出 有效元素 字典的对话框 我安装了 kupu 编辑器并且工作正常 但我更喜欢tinyMCE 有人遇到过这个问题吗 任何帮助将不胜
  • Plon:如何对文件夹项目进行排序

    我有一个名为myfolder 里面有一些项目 例如 item1 item2 item3 等等 当我添加 portlet 时Navigation到页面左栏 并输入到文件夹中myfolder 它向我展示了 portlet 上的链接 如下所示 i
  • 对于 genericsetup 导入步骤的名称,是否有一个很好的参考列表

    是否有通用设置导入步骤名称的综合参考列表 通用设置导入步骤的名称并不总是与其相应 xml 文件的名称匹配 例如 types xml 有一个名为 typeinfo 的导入步骤 如果没有列表 我会对一种简单的方法来查找导入步骤的名称感到满意 例
  • 导航 portlet:所有子级始终展开

    如何使导航 portlet 即使对于未选定的文件夹也显示子文件夹 我的意思是初始树状态已完全展开 至少对于一个级别 即 直接子级 我正在查看 INavtreeStrategy SitemapNavtreeStrategy 和 INaviga
  • 使用Plone的认证机制登录其他站点

    我正在使用 Plone 和 Sugar CRM 我希望允许用户在两 个系统上仅拥有一个用户名和密码 当他们在 Plone 中更改密码时 他们不必在 Sugar CRM 中更改密码 有没有一种简单的方法可以做到这一点 如果您想要单点登录 您还
  • Plone 4.1.4 安装失败:lxml 构建失败:libxml2:

    预期结果 Successful installtion of Plone 4 1 4 实际结果 Installation fails with libxml2 cmmi failed Stack Ubuntu Ubuntu 10 04 4
  • Plone/Zope 的外部方法

    我有两个 Plone 实例在服务器上运行 它们的位置是 usr local Plone Inst1 和 usr local Plone Inst2 我正在尝试设置外部方法 但很难确定我的 扩展 文件夹应该放置在哪里 似乎无论我把它放在哪里
  • Plone 工作流程的圣杯

    我们正在实施 Plone CMS 作为 ISO9001 文档的存储库 ISO 要求一定量的日志记录 任何熟悉该标准的人都可能知道 为了灵活性 我们希望合并 不按特定顺序 新的内容类型 需要合并企业中可能出现的不同文档 版本控制 表明我们的文
  • 使用 plone.memoize.ram 使 memoize 无效/阻止

    我和 Zope 实用程序提供了一种执行网络进程的方法 由于结果在一段时间内有效 我正在使用plone memoize ram缓存结果 MyClass object cache cache key def do auth self adapt
  • 灵活地移动现有领域/行为[重复]

    这个问题在这里已经有答案了 如何将现有字段 IDublinCore rights 移动到特定字段之后的另一个字段集中 无需编写我自己的行为 IDublinCore 的副本 Rights 字段应出现在 image caption 自己的内容类
  • 将 Archetype 新闻项目迁移到 Dexterity 内容类型

    我正在尝试将新闻项目中的内容复制到我编写的其他内容类型 在我的脚本中我有news项目和project物品 第二 project 是使用 Dexterity 定义的内容类型 如果我可以复制图像和正文 那就太好了news to project在
  • 新主题产品给出“ValueError:主题 my.theme 不可用”

    我使用这些说明通过 zopeskel 创建了一个新主题http docs plone org adapt and extend theming theme product with diazo html http docs plone or
  • IE7 和 TinyMCE 与 Plone

    在 Windows 服务器上开箱即用的 Plone 4 1 4 4113 中 IE7 上会出现一些客户端问题 我知道 访问主站点 没问题 登录 IE 引发运行时错误 第 505 行 扩展标识符 字符串或数字 添加内容 IE 引发运行时错误
  • 使用 plone.api 创建文件的 Python 脚本在设置文件时出现错误 WrongType

    Dears 我正在创建一个脚本python来在Plone站点中批量上传文件 安装是UnifiedInstaller Plone 4 3 10 该脚本读取了一个txt 并且该txt以分号分隔 在新创建的项目中设置文件时出现错误 下面是脚本 f

随机推荐

  • 权限问题:如何在 docker for windows 上设置权限以与 Wordpress 一起使用

    问题 I m trying to setup my developing environment using Docker for Windows for use with Wordpress I m using docker compos
  • 如何在所有测试文件之前运行 Jasmine

    我正在使用 Nodejs 为我们的 API 创建端到端测试套件 在每个测试运行之前 我需要插入该测试的数据库记录 许多有问题的表不使用本机自动增量类型字段作为其主键 我知道 数据库设计不好 但我无法控制 相反 他们使用 postgresql
  • 在二叉树中查找共同祖先

    在一次采访中有人问我这个问题 我有一个二叉树 我必须在给定该树的两个随机节点的情况下找到共同祖先 父级 我还得到了一个指向根节点的指针 我的回答是 分别遍历树的两个节点 直到到达预期的节点 并行遍历时将元素和下一个地址存储在链表中 那么我们
  • 删除字符串末尾的下划线和数字

    我正在使用一个包含带有一些下划线的列的数据集 有一个图案 但它们是不同的图案 如下所示 ID Col1 1029 ap analog 2334 critical 1 mm 1 2334 transpose 2 mm 2 9877 publi
  • php中逗号分隔的列表

    我正在尝试建立一个用逗号分隔的列表 应该如下所示 绿色 橙色 红色 i 0 taxonomy form state values taxonomy 5 foreach taxonomy as key gt value result db q
  • Java中如何打印Statement(CallableStatement)?

    如何打印此 OracleCallableStatement ocstmt OracleCallableStatement connection prepareCall call package method id gt name gt oc
  • 如何抑制CatBoost迭代结果?

    我正在尝试使用 CatBoost 来拟合二进制模型 当我使用下面的代码时 我想verbose False可以帮助抑制迭代日志 但事实并非如此 有没有办法避免打印迭代 model CatBoostClassifier iterations 3
  • 动态更改数据模板

    我有一个绑定到任务的项目控件 每个任务都有任务状态 我为每个任务状态定义了不同的数据模板 以及数据模板选择器 问题是我无法弄清楚当任务状态动态更改时如何触发数据模板选择器 我想知道如何将数据触发器与数据模板一起使用 如果这不起作用 我将探索
  • 我如何使用 javascript/jquery 知道给定字符串是 hex、rgb、rgba 或 hsl 颜色?

    我使用正则表达式来表示十六进制 a fA F0 9 6 a fA F0 9 3 但我不知道我应该做什么来找到 rgb rgba 和 hsl 我正在以字符串形式获取输入 例如 输入将包含 rgb 0 0 0 或 rgb 0 0 0 0 2 这
  • android 如何比较待处理的意图

    文档PendingIntent FLAG NO CREATE http developer android com reference android app PendingIntent html FLAG NO CREATE reads
  • Android 列表视图搜索过滤器

    我正在尝试为 Android 进行列表视图搜索 我发现很多教程都可以做到这一点 搜索栏位于顶部 如果您在框中键入内容 结果将被过滤 在我的应用程序中 我想在过滤完成后单击给定的项目 我已经实现了 setOnItemClickListener
  • 引导两个导航栏折叠

    在引导程序中 我想在彼此下方有两个导航栏 我的想法 Navbar 1有一个品牌 主菜单 Navbar 2 在navbar1下面 有一个品牌叫做 子菜单 当用户在手机上查看该网站时 他 她会看到两个可折叠的导航栏 用户现在可以选择要打开的导航
  • 您多久更新一次 SQL Server 2000 中的统计信息?

    我想知道更新统计数据之前是否对您有帮助 您是如何知道更新它们的 exec sp updatestats 是的 如果您发现查询的性能未达到应有的效果 更新统计信息会非常有帮助 这可以通过检查查询计划并注意何时执行表扫描或索引扫描而不是索引查找
  • 在 Web 应用程序中记录用户活动

    我希望能够在网络应用程序中记录用户活动 我目前正在使用 log4j 它可以很好地记录错误等 但我不确定记录用户 执行的 servlet 方法和方法参数的最佳方法是什么 我正在使用 spring security 进行身份验证 典型的 Ser
  • 如何向网络服务发送和接收表情符号[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要在我的 Android 应用程序中使用表情符号进行聊天 我正在使用这个库https github com rockerhieu
  • gdb 堆栈奇怪

    我有时会得到这个奇怪的回溯 gdb bt 0 0x00002b36465a5d4c in AY16 Loop M16 from opt intel mkl 10 0 3 020 lib em64t libmkl mc so 1 0x0000
  • Python fastcgi 客户端

    我正在用 python 编写一个工具来监控 fastcgi 应用程序 我唯一需要 fastcgi 的是加载 ping 和状态页面 如果失败则返回某种错误 有很多库 从 python fasctgi 绑定到twisted 似乎能够做到这一点
  • Zend Framework 2 模块在 Bootstrap 控制器之间共享变量

    是否可以在 Module php 中创建变量甚至共享对象 如数据库适配器 以在所有视图控制器中使用 Zend 框架 2 例如 class Module public function onBootstrap MvcEvent e modul
  • python:腌制c对象

    首先 我并不期待解决方案 只是希望得到一些关于如何开始的指导 我有一个带有嵌入式 Python 解释器的 C 程序 程序用作输入的 Python 脚本显然是指 C 定义的对象和函数 我现在想让其中一些对象可腌制 pickle 文档描述了如何
  • Plone/z3c.form 3.2.1-如何使自动完成小部件(不是必填字段)使用自定义绑定源对象?

    我正在尝试使用绑定的源对象获取自动完成小部件以表单 z3c form 呈现 在接口类中 Parent schema Choice title u A Parent source ParentSourceBinder required Fal