我正在创建一个新视图以供用户在模块内创建对象的记录,因此我在<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>
views.xml
<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.py
from odoo import models, fields, api
class new_activity_type(models.Model):
_name = 'new.activity.type'
name = fields.Text('Name')
__ init __。py
# -*- coding: utf-8 -*-
from . import controllers
from . import models
答案 0 :(得分:1)
您已经使用相对路径导入了models
目录,这是可以的,但是您还需要记住.py
内部的python模块(models
文件)必须被导入到使用相对路径对目录__init__.py
文件进行建模。这样,只要将模块安装在odoo中,odoo就会导入模块的根目录__init__.py
,models
文件中的所有.py
定义都将被导入。
这不仅适用于models目录,还适用于任何其他目录,您必须导入.py
才能使这些python代码正常工作。例如,如果有controllers
,wizards
,reports
目录.py
文件,则也是如此。它的工作方式如下:每当导入Python中的软件包时,__init.py__
文件都会自动执行,因此执行过程如下:
附加程序根目录
__init__.py
>>模型目录__init__.py
>>全部.py
该文件中导入的文件。
在您的models
目录中,创建__init__.py
文件(如果尚不存在)。
模型/ __ init __。py
from . import new_activity_type