У меня возникли проблемы с получением RelationList для отображения того, что я хочу в виджетах. Поведение, которое я видел, не имеет для меня никакого смысла: /mysite/folder1/foo - новый контент, где я хочу создать отношение /mysite/folder2/bar - элемент, к которому я хочу установить ссылку.Как получить RelationList для фильтрации с помощью object_provides?
source=ObjPathSourceBinder(object_provides='foo.bar.IMyInterface')
Это, кажется, чтобы отобразить все содержимое Ловкость независимо от интерфейса - хотя только содержание, которое обеспечивает IMyInterface выбирается.
source=ObjPathSourceBinder(navigation_tree_query={'object_provides':'foo.bar.IMyInterface'}))
Я не понимаю, почему это приводит к поведению, но не приводит к показу содержимого. Это, как представляется, проблема с путем запроса, потому что это действительно работает:
source=ObjPathSourceBinder(navigation_tree_query={'path':{'query':'/mysite/folder2'},'object_provides':'foo.bar.IMyInterface'}))
Однако это не является идеальным, поскольку он требует знаний пути. Я ожидал, что поведение покажет только содержимое и контент в папках, которые предоставляют мой интерфейс, и только контент, который позволяет выбрать мой интерфейс. Разве это невозможно?
Я знаю, что отношения не больше не поддерживаются по умолчанию https://pypi.python.org/pypi/plone.app.dexterity#relation-support-no-longer-included-by-default (я использую plone.app.dexterity 1.2.1 и Plone 4.2)
В качестве альтернативы, просто выберите виджет будет в порядке, но я не смог получить какие-либо виджеты по умолчанию z3c.form для правильной работы с этим полем (они отлично отображались, но не имели выбранного контента). Возможно, было бы лучше просто использовать обычный список схем z3c со словарем, где это значение является UID, и сам искать объект?