Форум сайта python.su
Есть примерно следующий интерфейс:
class IMyObject(interface.Interface):
field1 = zope.schema.Choice(title='Field1', vocabulary='vocabulary1')
field2 = zope.schema.Choice(title='Field2', vocabulary='vocabulary2')
Офлайн
Посмотри в сторону zc.sourcefactory. Для поля Choice указывай как source - FilteringSource например (http://pypi.python.org/pypi/zc.sourcefactory/0.7.0#filtering). А вообще почитай документацию может что другое поможет.
Офлайн
Scheme и Vocabulary - это все придумано для работы с контекстом, но не с запросом.
Но контекст можно сделать динамически генерируемым с учетом запроса. На вскидку - в методе getContent() формы отдавать адаптер, проксирующий реальный контекст с учетом данных запроса.
class EditMyObject(z3c.form.EditForm):
def getContent(self):
return IMyObjectView(self.context, self.request) # делает field зависимым от request
SleepwalkerНу, это не поможет, по-моему. Данная библиотека просто предоставляет набор удобств. Сколько я не пытался ее использовать, возвращался к обычному vocabulary.
Посмотри в сторону zc.sourcefactory. Для поля Choice указывай как source - FilteringSource например (http://pypi.python.org/pypi/zc.sourcefa … #filtering). А вообще почитай документацию может что другое поможет.
Офлайн
Спасибо за ответы.
На данный момент решил проблему поняв, что field2 мне пока что не нужен :)
Занимаюсь портированием плоновского продукта Product.Collage на BlueBream и поэтому иногда не сразу приходит осознание того, что некоторые поля интерфейсов из этого продукта можно и не переносить.
Естественно я думал насчёт реализации через JavaScript, и скорее всего через него и буду делать, когда снова понадобится такая заморочка.
Отредактировано (Май 8, 2011 01:29:14)
Офлайн