2015-07-30 4 views
0

Есть ли быстрый способ - помимо обхода формы - до disable поля ввода при определении таблицы? Установка поля writable=False отображает данные, но не во входном поле.Как отключить поля ввода в Web2Py

Что-то вроде disable=True было бы здорово.

ответ

1

Вы можете настроить виджет данного поля:

db.define_table('mytable', 
    Field('myfield', type='string', 
      widget=lambda f, v: SQLFORM.widgets.string.widget(f, v, _disabled=True))) 

Будьте осторожны, хотя - когда форма была отправлена, браузер не будет отправлять данные для поля инвалидов, но SQLFORM все равно будет ожидать значение (потому что writable=True). Итак, если у вас есть валидатор, который требует значения, вам понадобится обходное решение (например, установив значение поля в request.post_vars перед обработкой формы или определяя настраиваемый валидатор).

+0

В моем случае это решение работает хорошо - поля формы отправляются на размытие, поэтому обработка формы по умолчанию не происходит. – Rockbot

+0

Я только узнал, что можно передать любой аргумент виджету, например 'widget = lambda f, v: SQLFORM.widgets.string.widget (f, v, _disabled = True, _superhero = 'Phantomas')'. Благодаря! – Rockbot

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