Odoo 如何更改创建函数上选择字段的值?
单击“保存”后,我想更改Odoo 如何更改创建函数上选择字段的值?,odoo,odoo-10,Odoo,Odoo 10,单击“保存”后,我想更改状态的值状态是一个选择字段[('ok','ok'),('tobe','Not ok')] status=字段。选择( readonly=False, default='tobe', 相关='name.status' ) @api.model def创建(自身、值): self.status='ok' line=super(MyClass,self).创建(值) 回程线 在调用方法create时,不会创建实例。因此,self没有任何实例self.status='ok'将更
状态的值<代码>状态
是一个选择字段<代码>[('ok','ok'),('tobe','Not ok')]
status=字段。选择(
readonly=False,
default='tobe',
相关='name.status'
)
@api.model
def创建(自身、值):
self.status='ok'
line=super(MyClass,self).创建(值)
回程线
在调用方法create
时,不会创建实例。因此,self
没有任何实例self.status='ok'
将更改nothing的status值
您可以在values
中设置如下值:
@api.model
def创建(自身、值):
值['status']='ok'
line=super(MyClass,self).创建(值)
回程线
或在创建实例后更改值:
@api.model
def创建(自身、值):
line=super(MyClass,self).创建(值)
line.status='确定'
回程线
但是只有在创建新实例时才会调用方法
create
。在这种情况下,有人想要保存实例。然后必须重写方法write
:
@api.multi
def写入(自身、VAL):
VAL[“状态”]=“正常”
ret=super(框架协议,self).write(VAL)
错误在您的选择字段声明中。应该是这样的:
status=fields.Selection([('ok','ok'),('notok','notok'),],default='tobe')
@api.multi
def写入(自身、VAL):
VAL[“状态”]=“正常”
ret=super(此处为您的类名self)。write(VAL)
默认情况下,每个字段上的readonly为false,因此无需在选择字段中指定它
如果这能解决您的挑战,请通知我。
感谢状态是一个相关字段,因此在创建之后,请更改多个字段的状态
@api.model
def创建(自身、值):
rec=super(YouClassName,self)。创建(值)
#在这里更改状态。
rec.name.status='确定'
返回记录
与你写的完全一样。我尝试在createyes之后更改值。我尝试line.status='ok',我尝试使用值['status']='ok'否更改否errorOk。请告诉我。你对“点击保存”有什么意见。您之前做了什么?单击“保存”是第一次创建记录,因此它是“创建函数状态=字段”。选择(readonly=False,default='tobe',related='name.status')名称是One2manyfield@SOS-蒙娜:这是正确的答案。选择字段需要一个定义字段选择内容的Selection
参数。它默认为None
,因此无法设置任何有意义的值。请看下面的图片。“除相关字段或字段扩展名外,属性选择是必需的。”