Plone ArchGenXML двухсторонние ссылки

На сайте Plone у меня есть профессор и класс факультета. Они двунаправлены m:n. Я использую ArgoUML и ArchGenXML для генерации этих классов - как я могу сделать это отношение удобным для навигации, чтобы я мог получить доступ не только к профессорам, но и к профессорам кафедр? То, как я это делаю, похоже, генерирует классы, так что я могу переходить от профессора к кафедре, но в схеме кафедры такая связь не создается...

Спасибо!

schema = Schema(( #professor

StringField(
    name='name',
    widget=StringField._properties['widget'](
        label='Name',
        label_msgid='ufscar_label_name',
        i18n_domain='ufscar',
    ),
),
ReferenceField(
    name='departments',
    widget=ReferenceBrowserWidget(
        label='Departments',
        label_msgid='ufscar_label_departments',
        i18n_domain='ufscar',
    ),
    allowed_types=('Department',),
    multiValued=1,
    relationship='DepartmentMembership',
),
)

а также

schema = Schema(( #department

StringField(
    name='name',
    widget=StringField._properties['widget'](
        label='Name',
        label_msgid='ufscar_label_name',
        i18n_domain='ufscar',
    ),
),
)

------------- Приложение -----------------

Извините, не могу отформатировать в комментариях, поэтому я спрошу здесь:

На странице Products.ATBackRef 2.1 написано

  • в вашем UML-инструменте создайте связь между двумя классами и сделайте "to" в конце ассоциации доступной (такой зверь приведен в примере dir).

Я думаю, это по умолчанию, оба конца ориентированы

  • добавьте теговое значение backreferences_support к вашей модели и установите его равным 1.

Модель, являющаяся классом? Или создать атрибут для этого? Или отношение? Я в замешательстве... Установив его на один, как бы он узнал, по какой обратной ссылке перемещаться? Там может быть более одного...

1 ответ

Решение

Вы хотите использовать BackReferenceField. Ссылки являются направленными, то есть один объект указывает на другой, и движение в другом направлении не совпадает. Однако механизм ссылок может выполнить обратный поиск, используя обратные ссылки. BackReferenceField позволяет вам использовать это.

Другие вопросы по тегам