我正在创建一个新视图,用户在模块中创建一个对象的记录,所以我在<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
你已经用相对路径导入了models
目录,这没关系,但你还需要记住你的.py
中的python模块(models
文件)必须使用相对路径导入模型目录__init__.py
文件中。这样,无论何时在odoo中安装模块,odoo都会导入模块根目录__init__.py
,models
文件中的所有.py
定义都将被导入。
这不仅适用于模型目录,还适用于任何其他目录,您必须导入.py
才能使这些python代码正常工作。例如,controllers
,wizards
,reports
目录.py
文件也,如果有的话。这可以通过以下方式工作:无论何时导入Python中的包,__init.py__
文件都会自动执行,因此执行如下:
addons root dir
__init__.py
>> models dir__init__.py
>>所有在该文件中导入的.py
文件。
在models
目录中,创建__init__.py
文件(如果尚未存在)。
车型/ __ init__.py
from . import new_activity_type