从参考目录中删除项目(如果是';s UID已消失或清除Plone中已损坏的引用目录
我对LinguaPlone有以下情况从参考目录中删除项目(如果是';s UID已消失或清除Plone中已损坏的引用目录,plone,linguaplone,Plone,Linguaplone,我对LinguaPlone有以下情况 我有a1-en、a1-fi和a1-sv页 a1 fi和a1 sv认为a1 en是规范翻译 a1 enisCanonical()返回False 这是因为isCanonical()检查当前项是否有“翻译”引用 a1 en是一个不吉利的页面,因为实际上有“translation of”引用,但它是一个断开的引用,其中UID引用所指的项目不见了。(它只按UID检查引用,而不检查实际内容项是否存在) 现在,我需要以某种方式修复这种情况,使a1 en相信它再次成为规
- 我有a1-en、a1-fi和a1-sv页
- a1 fi和a1 sv认为a1 en是规范翻译
- a1 en
返回FalseisCanonical()
- 这是因为
检查当前项是否有“翻译”引用isCanonical()
- a1 en是一个不吉利的页面,因为实际上有“translation of”引用,但它是一个断开的引用,其中UID引用所指的项目不见了。(它只按UID检查引用,而不检查实际内容项是否存在)
- 是否有自动维护参考目录和清除断开条目的方法
- 如果不是,手动修复参考目录中的这一个损坏条目的方法是什么
- 像这样:
badCanonical = app.Plone.en.offering.restaurants
badCanonical.isCanonical() # False - contains a corrupted translationOf link
badCanonical.getTranslations() # Get list of what translations should exist
cat = app.Plone.reference_catalog
cat.getReferences(badCanonical, relationship="translationOf") # Displays UID referring object not existing
# Delete forward relationships
for b in cat.getReferences(badCanonical, "translationOf"): cat._deleteReference(b)
badCanonical.isCanonical() # True - fixed
badCanonical.getTranslations()
# Check that one of the translated versions still work
translated = app.Plone.sv["kalajoki-erbjuder"].restauranger
translated.isCanonical()
translated.getTranslations()
通常,“管理翻译”表单应允许删除和重新分配翻译参考。这不会清理目录,但也可能使您的翻译按照您期望的方式进行。这不起作用,因为规范副本错误地认为它不是规范副本,并且没有给您提供选项。