我正在进行一些PloneFormGen工作。目前,PloneFormGen将输入的表单条目存储为没有关联列信息的元组。如果添加新列(表单字段)则现有数据将变得无效。
可以通过将数据存储在有序字典中来轻松避免这种情况,它保留了输入列顺序和列ID。
ZODB是否具有类似于有序字典的数据类型?如果可能,甚至具有匹配API(Python dict-like item操作和访问)?
parent = odict_instance
或将_p_changed
设置为True
。这当然会导致父对象和有序字典实例一起产生一个新的持久记录。PersistentMapping
类作为构建相同顺序版本的模板。不幸的是,您不能将该类用作mixin,因为它直接引用了UserDict方法,而不是使用super()
调用(persistent.Persistent
不是新式类)。PersistentOrderedDict
实现应该是从PersistentMapping
源代码直接复制的,其中所有UserDict.IterableUserDict
实例都替换为您的有序字典端口。Werkzeug和Paste都提供了有序字典。您可以毫无疑问地为您的目的使用pickle。
class PersistantOrderedDict(PersistantMapping, OrderedDict):