Plone ArchGenXML двухсторонние ссылки - PullRequest
1 голос
/ 22 августа 2011

на сайте 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-инструменте создайте связь между двумя классами и сделайте до конца я ассоциация судоходной (такой зверь предоставляется в образец dir).

Полагаю, это значение по умолчанию, оба конца доступны для навигации

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

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

1 Ответ

1 голос
/ 23 августа 2011

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

...