2012-03-27 6 views
2

Я пытаюсь использовать деформирование как часть пирамиды и не испытываю проблем с получением полностью редактируемых или полностью доступных для чтения форм, но я не могу найти способ создания поля ввода только для чтения. Следующий код не делать то, что я хочу, но я думаю, вы должны быть в состоянии видеть то, что я пытаюсь сделать:Есть ли способ сделать поле формы deform/collander доступным только для чтения/отключенным?

class UserSchema(colander.MappingSchema): 
    first_name = colander.SchemaNode(colander.String()) 
    last_name = colander.SchemaNode(colander.String()) 
    username = colander.SchemaNode(colander.String()) 
    password = colander.SchemaNode(colander.String()) 
    email = colander.SchemaNode(colander.String(), validator=colander.Email()) 
    organization_name = colander.SchemaNode(colander.String(), widget=deform.widget.TextInputWidget(readonly=True)) 

ответ

3

Используйте только для чтения шаблона:

organization_name = colander.SchemaNode(colander.String(), missing='', widget=deform.widget.TextInputWidget(template='readonly/textinput')) 

Вы должны определить значение missing, в противном случае проверка не выполняется.

Deform версия 0.9.6+:

Deform был обновлен, так и аргумент readonly ключевое слово должно работать, как ожидалось.

+1

Я думаю, что предпочтительным является переход к '' readonly' '(http://docs.pylonsproject.org/projects/deform/en/latest/api.html?highlight=readonly#module-deform.widget). Также см. [Dont Validate Readonly Fields] (http://deformdemo.repoze.org/readonly_value_nonvalidation/) –

 Смежные вопросы

  • Нет связанных вопросов^_^