Попытка сделать форму с двумя вкладками (в императивном стиле) для деформирования 2, дуршлаг 1.0. Идея формы заключается в выборе между добавлением веб-страницы, и это название вручную, или в качестве альтернативы подачи URL:Deform 2/схема дуршлаг с двумя вкладками даже не проверяет
@property
def webpage_form(self):
schema = colander.SchemaNode(colander.Mapping(unknown='preserve'),
name="webpage_schema")
schema_page = colander.SchemaNode(colander.Mapping(unknown='preserve'),
title=u"Webpage", missing={})
webpage_name = colander.SchemaNode(
colander.String(),
name='webpage_name',
default=u'Webpage',
missing=u'',
)
webpage_url = colander.SchemaNode(
colander.String(),
name='url',
default=u'-',
missing=u'',
)
schema_page.add(webpage_name)
schema_page.add(webpage_url)
schema_feed = colander.SchemaNode(colander.Mapping(unknown='preserve'),
title=u"Feed", missing={})
feed = colander.SchemaNode(
colander.String(),
name='feed_url',
default=u'-',
missing=u'',
)
schema_feed.add(feed)
schema.add(schema_page)
schema.add(schema_feed)
return deform.Form(schema, buttons=('submit',))
В контроллере формы (пирамида):
controls = request.POST.items()
...
appstruct = self.webpage_form.validate(controls)
В то время как элементы управления, кажется, данные:
[('_charset_', u'UTF-8'),
('__formid__', u'deform'),
('__start__', u':mapping'),
('webpage_name', u'Webpage'),
('url', u'http://slashdot.org'),
('__end__', u':mapping'),
('__start__', u':mapping'),
('feed_url', u'-'),
('__end__', u':mapping'),
('submit', u'submit')]
appstruct пуст:
{'': {}}
Экспериментирован с заголовком, отсутствует, по умолчанию, неизвестные параметры, без результата. Что не так с формой?
Кроме того, вместо двух вкладок есть два последовательных набора полей, но это может быть другая история.