Есть ли быстрый способ - помимо обхода формы - до disable
поля ввода при определении таблицы? Установка поля writable=False
отображает данные, но не во входном поле.Как отключить поля ввода в Web2Py
Что-то вроде disable=True
было бы здорово.
Есть ли быстрый способ - помимо обхода формы - до disable
поля ввода при определении таблицы? Установка поля writable=False
отображает данные, но не во входном поле.Как отключить поля ввода в Web2Py
Что-то вроде disable=True
было бы здорово.
Вы можете настроить виджет данного поля:
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
перед обработкой формы или определяя настраиваемый валидатор).
В моем случае это решение работает хорошо - поля формы отправляются на размытие, поэтому обработка формы по умолчанию не происходит. – Rockbot
Я только узнал, что можно передать любой аргумент виджету, например 'widget = lambda f, v: SQLFORM.widgets.string.widget (f, v, _disabled = True, _superhero = 'Phantomas')'. Благодаря! – Rockbot