gpt4 book ai didi

forms - 如何创建一个类似于 MultiContentTreeFieldWidget 但保留项目顺序的 Plone 表单小部件

转载 作者:行者123 更新时间:2023-12-02 02:21:45 25 4
gpt4 key购买 nike

我有一种灵巧的行为,允许我关联项目并将关系存储为 UUID

relatedItems = schema.List(
title=u"Related Items",
description=u"Search for content that is related to this item",
required=False,
value_type=schema.Choice(
source=UUIDSourceBinder(navigation_tree_query={'portal_type':
TYPES_WITH_TEASERS})))
form.widget(relatedItems='plone.formwidget.contenttree.widget.MultiContentTreeFieldWidget')

这很好用,但如果您有几个关系,那么每次您编辑项目时,它们的顺序都会改变。我们在页面右侧的栏中显示相关项目(例如,查看 article about food )并希望控制顺序,以便我们可以首先放置更有趣的预告片。

调试看起来这种重新排序可能是由于 z3c.formwidget.query.widget.QuerySourceRadioWidget.update 在处理请求参数时使用了一个集合。据推测这是为了防止重复,但有两个令人讨厌的副作用:

  1. 字段的值在未更改时得到更新
  2. 在重要的时候失去了秩序

有没有 MultiContentTreeFieldWidget 的替代品,其工作方式类似但保留您添加项目的顺序?更好的是有一个小部件可以执行此操作并且还允许您重新排序项目吗?

最佳答案

我没有找到替代方案,但随后 z3c.formwidget.query 已更新为在处理请求参数时使用列表而不是集合。 0.7 版修复了这个问题

http://pypi.python.org/pypi/z3c.formwidget.query/0.7

将以下内容添加到构建中的 [versions] 部分以解决

z3c.formwidget.query = 0.7

关于forms - 如何创建一个类似于 MultiContentTreeFieldWidget 但保留项目顺序的 Plone 表单小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7807693/

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