向继承的Odoo模型添加序列字段时出现问题



我正在尝试向crm.lead模型添加一个序列字段。我已经为之前构建的另一个自定义模块实现了这段代码,没有任何问题。

我添加了新字段

class vox_crm_register(models.Model):

_inherit = 'crm.lead'
name_seq = fields.Char(
string='Registration Reference',
required=True,
copy=False,
readonly=True,
index=True,
default=lambda self: _('New'))

我重写了创建函数

@api.model
def create(self, vals):
print(vals.get('name_seq'))
if vals.get('name_seq', _('New')) == _('New'):
print('IF is true')
vals['name_seq'] = self.env['ir.sequence'].next_by_code('vox_crm_register.sequence') or _('New')
res = super(vox_crm_register, self).create(vals)
return res

这是我的序列

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="registration_sequence" model="ir.sequence">
<field name="name">Registration Sequence</field>
<field name="code">vox_crm_register.sequence</field>
<field name="prefix">reg</field>
<field name="padding">3</field>
<field name="company_id" eval="False"/>
</record>
</data>
</odoo>

这是的观点

<xpath expr="//sheet/group" position="replace">
<div class="oe_title">
<h1><field name="name_seq"/></h1>
</div>
</xpath>

创建函数中打印语句的结果是

IF为真

因为它是继承的,我必须以某种方式强制它还是添加上下文???

感谢的任何帮助

视图定义中不存在name_seq

来自约束文件:

只有当修饰方法中声明的字段包含在createwrite调用中时,才会触发

@constrains。这意味着视图中不存在的字段在创建记录期间不会触发调用。

您可以推断,如果视图中不存在字段,则其值将不存在于createwrite方法中。

编辑:

当您单击"保存"按钮时,将调用saveRecord函数以返回其值已修改的字段名列表,创建方法中将使用相同的列表。

由于name_seq字段是只读的,因此它不会出现在创建值中。

我发现了睡眠不足和愚蠢的问题。我更改了序列的代码值,没有从Odoo中删除旧序列。由于序列具有noupdate标记,它不会创建新的序列,但也不会更新。感谢Kenly的回复。

相关内容

  • 没有找到相关文章

最新更新