继承视图后,我无法替换字段

时间:2013-04-21 19:58:11

标签: openerp

我需要在项目模块中使用任务功能(我继承了“project.project”)。 我继承了这样的“project.task”:

class task(osv.osv):
  _name = "project.task"
  _description = "Task"
  _date_name = "date_start"
  _inherit = 'project.task'
  _columns={
          'my_project_id': fields.many2one('project.my.project', 'Project'),
          }

  task()

现在我需要用'my_project_id'替换任务创建表单中的project_id字段。我这样做了:

<record id="view_task_form2_inherited" model="ir.ui.view">
        <field name="name">project.task.form</field>
        <field name="model">project.task</field>
        <field name="inherit_id" ref="project.view_task_form2"/>
        <field eval="2" name="priority"/>
        <field name="arch" type="xml">
            <field name="project_id" position="replace">
                <field name="my_project_id"/>
            </field>

   </field>
</record>

它给我这个错误:未捕获错误:NameError:名称'project_id'未定义。

请注意,如果我使用position =“before”或“after”,则会正确添加“my_project_id”字段(在“project_id”字段之前/之后)。

2 个答案:

答案 0 :(得分:2)

尝试使用xpath

<xpath expr="//field[@name='project_id']" position="replace">

它可以运作。

答案 1 :(得分:0)

在更换

之前检查源模型视图

使用xpath替换

expr中的

使用精确路径,其中字段在xml中定义。