创建新员工时,hr_模块中出现Odoo13序列错误

创建新员工时,hr_模块中出现Odoo13序列错误,odoo,odoo-12,odoo-13,Odoo,Odoo 12,Odoo 13,您好,我实际上遇到了一个问题,我遵循了本链接中所示的教程,代码中没有错误,但当我创建新员工时,它不会生成参考号。所创建员工的参考号在树状图和表单视图中保持为“新”。有人能帮我吗 hr.py: name_seq = fields.Char(string='Order Reference', required=True, copy=False, readonly=True, index=True, default=lambda self: _('New')) @api.model def crea

您好,我实际上遇到了一个问题,我遵循了本链接中所示的教程,代码中没有错误,但当我创建新员工时,它不会生成参考号。所创建员工的参考号在树状图和表单视图中保持为“新”。有人能帮我吗

hr.py:

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

@api.model
def create(self, vals):
    if vals.get('name_seq', _('New')) == _('New'):
        vals['name_seq'] = self.env['ir.sequence'].next_by_code('hr.employee.sequence', sequence_date=seq_date) or _('New')

result = super(HrEmployeePrivate, self).create(vals)
return result
<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
    <!-- Sequences for transfer.order -->
        <record id="seq_hr_employee" model="ir.sequence">
            <field name="name">Employee Sequence</field>
            <field name="code">hr.employee.sequence</field>
            <field name="prefix">EMP</field>
            <field name="padding">3</field>
            <field name="company_id" eval="False"/>
        </record>
    </data>
</odoo>
<div class="oe_title">
    <h1>
        <field name="name_seq" readonly ="1"/>
    </h1>
    <h2>
        <field name="name" placeholder="Employee's Name" required="True"/>
    </h2>
    <h3>
        <field name="job_title" placeholder="Job Position" />
    </h3>
    <field name="category_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" placeholder="Tags" groups="hr.group_hr_manager"/>
</div>
sequence.xml:

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

@api.model
def create(self, vals):
    if vals.get('name_seq', _('New')) == _('New'):
        vals['name_seq'] = self.env['ir.sequence'].next_by_code('hr.employee.sequence', sequence_date=seq_date) or _('New')

result = super(HrEmployeePrivate, self).create(vals)
return result
<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
    <!-- Sequences for transfer.order -->
        <record id="seq_hr_employee" model="ir.sequence">
            <field name="name">Employee Sequence</field>
            <field name="code">hr.employee.sequence</field>
            <field name="prefix">EMP</field>
            <field name="padding">3</field>
            <field name="company_id" eval="False"/>
        </record>
    </data>
</odoo>
<div class="oe_title">
    <h1>
        <field name="name_seq" readonly ="1"/>
    </h1>
    <h2>
        <field name="name" placeholder="Employee's Name" required="True"/>
    </h2>
    <h3>
        <field name="job_title" placeholder="Job Position" />
    </h3>
    <field name="category_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" placeholder="Tags" groups="hr.group_hr_manager"/>
</div>

员工序列
hr.employee.sequence
电磁脉冲
3.
hr\u views.xml:

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

@api.model
def create(self, vals):
    if vals.get('name_seq', _('New')) == _('New'):
        vals['name_seq'] = self.env['ir.sequence'].next_by_code('hr.employee.sequence', sequence_date=seq_date) or _('New')

result = super(HrEmployeePrivate, self).create(vals)
return result
<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
    <!-- Sequences for transfer.order -->
        <record id="seq_hr_employee" model="ir.sequence">
            <field name="name">Employee Sequence</field>
            <field name="code">hr.employee.sequence</field>
            <field name="prefix">EMP</field>
            <field name="padding">3</field>
            <field name="company_id" eval="False"/>
        </record>
    </data>
</odoo>
<div class="oe_title">
    <h1>
        <field name="name_seq" readonly ="1"/>
    </h1>
    <h2>
        <field name="name" placeholder="Employee's Name" required="True"/>
    </h2>
    <h3>
        <field name="job_title" placeholder="Job Position" />
    </h3>
    <field name="category_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" placeholder="Tags" groups="hr.group_hr_manager"/>
</div>

这似乎是由于if条件,它将无法生成序列


打印VAL并检查字段的值,并基于创建方法中的put if条件。

问题是您的序列没有生成is
,您在其中检查了条件
if VAL.get('name_seq','New')==='New'):
其中,在
只读字段上,您将无法写入任何内容,因此,对于生成序列,它无法满足您的条件

要么像这样改变条件

if 'name_seq' not in vals or vals['name_seq'] == _('New'):

您只需要在模型文件中导入u

从奥多进口_