Как я могу изменить порядок наборов полей?


person Gagaro    schedule 25.09.2013    source источник
comment
Я не уверен, что это работает, но вы можете попробовать объявить каждый набор полей в своем собственном классе и смешать их в третьем в правильном порядке. Например: class FormSchemaFinal(FormSchemaFieldset2,FormSchemaFieldset1):   -  person Thiago Curvelo    schedule 26.09.2013


Ответы (1)


Боюсь, вы не сможете. Наборы полей схемы всегда объединяются в обратном порядке разрешения интерфейса; база перед производным интерфейсом. Объявление набора полей снова в схеме FormSchema2 приведет только к тому, что набор полей будет указан дважды.

Если вам нужно управлять порядком наборов полей, не наследуйте базовую схему, а повторно объявите ее.

person Martijn Pieters    schedule 25.09.2013
comment
Этот ответ, конечно, не на 100% верен. Вы можете выбить все дерьмо из интерфейсов Zope, вручную манипулируя их внутренними компонентами. Но ты не хочешь этого делать :) - person Mikko Ohtamaa; 25.09.2013
comment
@Mikko: вы можете установить помеченные значения с помощью метода setTaggedValue() в базовой схеме. Или мартышка plone.supermodel или plone.autoform. Но это либо нарушило бы базовую схему, либо потребовало бы глубокого знания двух фреймворков и было бы чрезвычайно хрупким. - person Martijn Pieters; 25.09.2013