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 позволяет вам использовать это.