如何在选择Class
选项时无需填写Evaluation_id
字段?
尝试执行以下方法,但它对我不起作用。
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
。您的需求可以通过使用 View 定义来解决:
<form>
<field name="tipo_reserva" />
<field name="evaluacion_id" attrs="{'required': [('tipo_reserva', '=', '1')]}" />
<field name="clase_id" attrs="{'required': [('tipo_reserva', '=', '0')]}" />
</form>
现在所需的状态是动态的并且取决于字段tipo_reserva
。这只是一个简短而丑陋的定义,但我希望您能理解它背后的想法。您还可以在 attrs
中实现 invisible
和 readonly
。
关于python - 填写字段是可选的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623308/