portal_catalog用于Archetypes和Dexterity内容的唯一ID

Mik*_*maa 3 plone archetypes uid dexterity

我正在查询portal_catalog以使用(UID,Title)元组填充词汇表.该网站同时具有Archetypes和Dexterity内容.

brains = portal_catalog.searchResults(path={ "query": site_physical_path + "/" + folder_name },
               portal_type=["foobar.app.courseinfo", "Folder"] )
Run Code Online (Sandbox Code Playgroud)

看起来Dexterity内容没有给出正确的UID,事实上所有Dexterity项都有相同的UID(它甚至不是无效值).

 ('29550a9a-5e6c-4593-8bee-9db11f29b934', u'xxx dexterity'), ('29550a9a-5e6c-4593-8bee-9db11f29b934', u'yyy dexterity'),
Run Code Online (Sandbox Code Playgroud)

在portal_catalog中将Archetypes和Dexterity内容中的唯一ID用作可查找内容ID密钥的最佳策略是什么?

Dav*_*ick 5

它可能从Dexterity项目的容器中获取UID.

从Dexterity 1.1开始,只要存在plone.uuid,所有Dexterity项目都应该获得自己的UUID,这在Plone 4.1及以上版本中应该始终如此.确保运行升级步骤以将UUID添加到不具有UUID的现有项目.