如何在Odoo上绑定Python类与记录的形式?

问题描述 投票:0回答:1

我正在创建一个新视图,用户在模块中创建一个对象的记录,所以我在<record>上创建了.xml,在.py文件上创建了一个类python,将字段'<record>与python变量绑定。问题是,当我运行错误发生时:

Model not found: new.activity.type

Error context:
View `New Activity Type`
[view_id: 771, xml_id: vz_custom_activities.custom_activities_new_activity_type, model: new.activity.type, parent_id: n/a]
None" while parsing /Users/augustosansoncadini/odoo_dev/git/addons/vz_custom_activities/views/views.xml:35, near
<record id="custom_activities_new_activity_type" model="ir.ui.view">
      <field name="name">New Activity Type</field>
      <field name="model">new.activity.type</field>
      <field name="arch" type="xml">
        <form>
          <group>
            <field name="name"/>
          </group>
        </form>
      </field>
    </record>

vievs.hml

<record id="custom_activities_new_activity_type" model="ir.ui.view">
  <field name="name">New Activity Type</field>
  <field name="model">new.activity.type</field>
  <field name="arch" type="xml">
    <form>
      <group>
        <field name="name"/>
      </group>
    </form>
  </field>
</record>

new_activity_type.朋友

from odoo import models, fields, api

class new_activity_type(models.Model):
    _name = 'new.activity.type'

    name = fields.Text('Name')

__init__.朋友

# -*- coding: utf-8 -*-

from . import controllers
from . import models
python xml odoo odoo-10
1个回答
1
投票

你已经用相对路径导入了models目录,这没关系,但你还需要记住你的.py中的python模块(models文件)必须使用相对路径导入模型目录__init__.py文件中。这样,无论何时在odoo中安装模块,odoo都会导入模块根目录__init__.pymodels文件中的所有.py定义都将被导入。

这不仅适用于模型目录,还适用于任何其他目录,您必须导入.py才能使这些python代码正常工作。例如,controllerswizardsreports目录.py文件也,如果有的话。这可以通过以下方式工作:无论何时导入Python中的包,__init.py__文件都会自动执行,因此执行如下:

addons root dir __init__.py >> models dir __init__.py >>所有在该文件中导入的.py文件。

models目录中,创建__init__.py文件(如果尚未存在)。

车型/ __ init__.py

from . import new_activity_type
© www.soinside.com 2019 - 2024. All rights reserved.