即使在odoo中创建记录后,列表视图仍为空白

问题描述

我已经与odoo一起工作了很长时间,而且以前从未遇到过这个问题,即使在创建记录后,模型的树形视图也不会显示记录。

这是我的模特


class PayrollStructureByJob(models.Model):
    _name = 'payroll.job'
    _inherit = 'mail.thread'
    _description = 'Salary Structure By job Position'
    _rec_name = 'job_id'

    job_id = fields.Many2one('hr.job',string='Job Position')
    salary_id = fields.Many2one('hr.payroll.structure',string='Salary Structure')
    wage = fields.Float()
    notes = fields.Text()
    active = fields.Boolean()
    

这是我添加到为模型创建的安全文件中的记录规则:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_payroll_job,payroll_job,model_payroll_job,hr.group_hr_manager,1,1
access_payroll_job_base,payroll_job_base,base.group_user,0

这是我的树状视图和表单视图:

<record id="view_payroll_job_list" model="ir.ui.view">
      <field name="name">view.payroll.job.list</field>
      <field name="model">payroll.job</field>
       <field eval="8" name="priority"/>
      <field name="arch" type="xml">
        <tree>
          <field name="id"/>
          <field name="job_id"/>
          <field name="salary_id"/>
          <field name="wage"/>
          <field name="active"/>
        </tree>
      </field>
    </record>


    <record id="view_payroll_job_form" model="ir.ui.view">
        <field name="name">view.payroll.job.form</field>
        <field name="model">payroll.job</field>
        <field name="arch" type="xml">
           
            <form>
              <sheet>
                <group>
                <field name="id"/>
                  <field name="job_id"/>
                  <field name="salary_id"/>
                  <field name="wage"/>
                  <field name="notes"/>
                  <field name="active"/>
                </group>
              </sheet>
              <div class="oe_chatter">
                <field name="message_follower_ids" widget="mail_followers"/>
                    
                <field name="message_ids" widget="mail_thread"/>
            </div>
            </form>
        </field>
    </record>

我也很困惑什么可能是错误的,我可能没有发现任何东西,但是我似乎无法弄清楚是什么。

解决方法

如果对象具有名为active的字段,则oooo会过滤掉所有非活动记录,除非明确要求它们(在上下文中将active_test设置为True)。

您定义了active字段,其默认值设置为False,Odoo会将('active','=',1)三元组添加到搜索域,这将过滤出所有带有active的记录设置为False。如果保留活动字段的默认值,则在树视图中将看不到创建的记录。

您可以在Odoo中找到许多定义活动字段的示例,如下所示:

active = fields.Boolean(default=True,help="Set active to false to hide the Account Tag without removing it.")