python - 填写字段是可选的
问题描述
Evaluation_id
选择该选项时,如何使无需填写该字段Class
?尝试执行以下方法,但它对我不起作用。
class reserva (models.Model):
_name='gimnasio.reserva'
tipo_reserva=fields.Selection([('0','Clase'),('1','Evaluacion')])
fecha_reserva=fields.Date()
hora_inicio=fields.Datetime()
hora_termino=fields.Datetime()
estado_reserva=fields.Char()
alumno_id = fields.Many2one(comodel_name='gimnasio.alumno', string='Alumno', required=True)
clase_id = fields.Many2one(comodel_name='gimnasio.clase', string='Clase', required=True)
evaluacion_id = fields.Many2one(comodel_name='gimnasio.evaluacion', string='Evaluacion', required=True)
@api.constrains('tipo_reserva')
def Check_tipo_reserva(self):
if self.'Clase':
raise 'evaluacion_id'=>required=False
解决方案
您应该删除required
字段定义或将其设置为False
. 您的要求可以通过使用视图定义来解决:
<form>
<field name="tipo_reserva" />
<field name="evaluacion_id" attrs="{'required': [('tipo_reserva', '=', '1')]}" />
<field name="clase_id" attrs="{'required': [('tipo_reserva', '=', '0')]}" />
</form>
现在所需的状态是动态的并且依赖于 field tipo_reserva
。这只是一个简短而丑陋的表单定义,但我希望你能理解它背后的想法。您还invisible
可以readonly
在attrs
.
推荐阅读
- jquery - 如何从表单中获取所有输入 - 不适用于选择器
- javascript - 通过 LZString 压缩 Base64 字符串会产生 SyntaxErrors
- python - 正则表达式环视 (?![\+\.])
- reactjs - 在“Connect(withRedux(MyApp))”的上下文中找不到“store”
- sas - 从 SAS 中的多个数据集中获得并减去观察总数
- c# - 使用 mvvm 时可以更改属性文本的颜色吗?
- c# - IIS 中的 Xaml 渲染不起作用(但在 IISExpress 中)
- sql - Access 2013 追加查询仅添加新的日期记录不存在
- javascript - 视频 JS 在 iOS Safari 浏览器和 Android 默认浏览器中无法正常播放
- sql - 如何在 Postgresql 中连接两个表以更新一个表