- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在做一些 PloneFormGen 的工作。目前 PloneFormGen 在内部将输入的表单条目存储为没有关联列信息的元组。如果添加了新列(表单字段),则现有数据将变得无效。
这可以很容易地避免将数据存储在有序字典中,它保留输入的列顺序和列 ID。
ZODB 是否具有等同于有序字典的数据类型?如果可能甚至使用匹配的 API(Python dict-like 项目操作和访问)?
最佳答案
您可以在 ZODB 中使用任何开箱即用的有序字典实现,但您必须使用 将父对象(引用有序字典实例的对象)标记为已更改parent = odict_instance
每次更改它或将 _p_changed
设置为 True
。当然,这会导致父级的新持久记录以及有序的字典实例。
如果您希望有序字典实例本身自动检测更改,您可能必须构建自己的类,因为我不知道任何当前的实现。也就是说,这样做可能非常容易,特别是如果您使用 ZODB PersistentMapping
类作为关于如何构建相同的有序版本的模板。不幸的是,您不能将该类用作混合,因为它直接引用 UserDict 方法而不是使用 super()
调用(persistent.Persistent
不是新的-样式类)。
Python 2.7 在标准库中有一个有序的字典类。大概您仍在 Plone 中使用 Python 2.6,因此您必须向后移植它。但是,一旦你将它反向移植,PersistentOrderedDict
实现应该是 PersistentMapping
source code 的直接副本。 , UserDict.IterableUserDict
的所有实例都替换为您的 OrderedDict 端口。
关于python - ZODB 等同于有序字典(odict?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9869262/
判断这2个相似的Uris实际上相同的标准方法是什么? var a = new Uri("http://sample.com/sample/"); var b = new Uri("http://sam
这个问题在这里已经有了答案: Why does "true" == true show false in JavaScript? (5 个答案) 关闭 5 年前。 可能我很困惑,但我无法理解这个愚蠢
我是一名优秀的程序员,十分优秀!