为什么我在尝试安装模块时收到错误 "model not found : product.print.zpl.barcode"?
Why am I getting the error "model not found : product.print.zpl.barcode" when I try to install a module?
我想安装我的自定义模块 product_print_zpl_barcode
,但是当我按下安装按钮时它显示此错误:
ParseError: "Invalid view definition
D\xe9tails de l'erreur :
Mod\xe8le non trouv\xe9 : product.print.zpl.barcode
Contexte de l'erreur :
Vue `product_print_zpl_barcode.form`
[view_id: 847, xml_id: n/a, model: product.print.zpl.barcode, parent_id: n/a]
None" while parsing [...]/openerp/addons/product_print_zpl_barcode/views/product_print_zpl_barcode_view.xml:5, near
product_print_zpl_barcode_view.xml
<record id="product_print_zpl_barcode_form" model="ir.ui.view">
<field name="name">product_print_zpl_barcode.form</field>
<field name="model">product.print.zpl.barcode</field>
<field name="arch" type="xml">
<form string="Generate and Print Product Barcode">
<group name="step1" string="Configuration">
<field name="state" invisible="1"/>
<field name="currency_id" invisible="1"/>
<field name="product_id"/>
<field name="product_name" attrs="{'readonly': [('state', '=', 'step2')]}"/>
<field name="pricelist_id" attrs="{'readonly': [('state', '=', 'step2')]}"/>
<field name="price_uom"/>
<field name="label_size" attrs="{'readonly': [('state', '=', 'step2')]}"/>
<field name="nomenclature_id" attrs="{'readonly': [('state', '=', 'step2')]}"/>
<field name="rule_id"/>
<field name="barcode_type"/>
<field name="barcode"/>
<field name="copies" attrs="{'readonly': [('state', '=', 'step2')]}"/>
</group>
<group string="Enter Quantity" attrs="{'invisible': [('barcode_type', '=', 'product')]}">
<div name="qty_uom">
<field name="quantity" attrs="{'readonly': [('state', '=', 'step2')]}" class="oe_inline"/>
<field name="uom_id" class="oe_inline"/>
</div>
</group>
<group name="step2" states="step2" string="Label">
<field name="price"/>
<field name="zpl_file" filename="zpl_filename"/>
<field name="zpl_filename" invisible="1"/>
<field name="zpl_printer_id" required="1"/>
</group>
<footer>
<button name="generate" type="object" string="Generate Label" class="btn-primary" states="step1"/>
<button special="cancel" string="Cancel" class="oe_link" states="step1"/>
<button name="print_zpl" type="object" string="Print" class="btn-primary" states="step2"/>
<button name="print_zpl" type="object" string="Print and New" class="btn-primary" context="{'print_and_new': True}" attrs="{'invisible': ['|', ('state', '!=', 'step2'), ('barcode_type', '=', 'product')]}"/>
<button special="cancel" string="Close" class="oe_link" states="step2"/>
</footer>
</form>
</field>
</record>
<record id="product_print_zpl_barcode_action" model="ir.actions.act_window">
<field name="name">Generate Barcode</field>
<field name="res_model">product.print.zpl.barcode</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
我想创建一个新模型product.print.zpl.barcode
,但即使创建了操作,Odoo 也无法识别新模型。
这是
的代码
因此请确保您在 right way 中添加模型。你必须考虑
将此包含在 /your_module/__init__.py
import models
将此包含在 /your_module/models/__init__.py
import model_name
在 /your_module/models/model_name.py
文件中包含您的模型:
from openerp import models, fields
class YourModel(models.Model):
_name = 'a.model.name'
field1 = fields.Char()
要重新加载 python 文件,您需要重新启动服务器
- 要重新加载 xml 文件,您需要使用参数
--update=your_module
重新启动服务。您可以通过按模块表单上的 更新 按钮进行此更新。
注意:请注意,如果您从 class models.TransientModel
继承,您的 table 的数据将随时间被删除时间。常见的用途是在向导上。如果你想要一个持久模型,你需要继承自 models.Model
我想安装我的自定义模块 product_print_zpl_barcode
,但是当我按下安装按钮时它显示此错误:
ParseError: "Invalid view definition
D\xe9tails de l'erreur :
Mod\xe8le non trouv\xe9 : product.print.zpl.barcode
Contexte de l'erreur :
Vue `product_print_zpl_barcode.form`
[view_id: 847, xml_id: n/a, model: product.print.zpl.barcode, parent_id: n/a]
None" while parsing [...]/openerp/addons/product_print_zpl_barcode/views/product_print_zpl_barcode_view.xml:5, near
product_print_zpl_barcode_view.xml
<record id="product_print_zpl_barcode_form" model="ir.ui.view">
<field name="name">product_print_zpl_barcode.form</field>
<field name="model">product.print.zpl.barcode</field>
<field name="arch" type="xml">
<form string="Generate and Print Product Barcode">
<group name="step1" string="Configuration">
<field name="state" invisible="1"/>
<field name="currency_id" invisible="1"/>
<field name="product_id"/>
<field name="product_name" attrs="{'readonly': [('state', '=', 'step2')]}"/>
<field name="pricelist_id" attrs="{'readonly': [('state', '=', 'step2')]}"/>
<field name="price_uom"/>
<field name="label_size" attrs="{'readonly': [('state', '=', 'step2')]}"/>
<field name="nomenclature_id" attrs="{'readonly': [('state', '=', 'step2')]}"/>
<field name="rule_id"/>
<field name="barcode_type"/>
<field name="barcode"/>
<field name="copies" attrs="{'readonly': [('state', '=', 'step2')]}"/>
</group>
<group string="Enter Quantity" attrs="{'invisible': [('barcode_type', '=', 'product')]}">
<div name="qty_uom">
<field name="quantity" attrs="{'readonly': [('state', '=', 'step2')]}" class="oe_inline"/>
<field name="uom_id" class="oe_inline"/>
</div>
</group>
<group name="step2" states="step2" string="Label">
<field name="price"/>
<field name="zpl_file" filename="zpl_filename"/>
<field name="zpl_filename" invisible="1"/>
<field name="zpl_printer_id" required="1"/>
</group>
<footer>
<button name="generate" type="object" string="Generate Label" class="btn-primary" states="step1"/>
<button special="cancel" string="Cancel" class="oe_link" states="step1"/>
<button name="print_zpl" type="object" string="Print" class="btn-primary" states="step2"/>
<button name="print_zpl" type="object" string="Print and New" class="btn-primary" context="{'print_and_new': True}" attrs="{'invisible': ['|', ('state', '!=', 'step2'), ('barcode_type', '=', 'product')]}"/>
<button special="cancel" string="Close" class="oe_link" states="step2"/>
</footer>
</form>
</field>
</record>
<record id="product_print_zpl_barcode_action" model="ir.actions.act_window">
<field name="name">Generate Barcode</field>
<field name="res_model">product.print.zpl.barcode</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
我想创建一个新模型product.print.zpl.barcode
,但即使创建了操作,Odoo 也无法识别新模型。
这是
因此请确保您在 right way 中添加模型。你必须考虑
将此包含在
/your_module/__init__.py
import models
将此包含在
/your_module/models/__init__.py
import model_name
在
/your_module/models/model_name.py
文件中包含您的模型:from openerp import models, fields class YourModel(models.Model): _name = 'a.model.name' field1 = fields.Char()
要重新加载 python 文件,您需要重新启动服务器
- 要重新加载 xml 文件,您需要使用参数
--update=your_module
重新启动服务。您可以通过按模块表单上的 更新 按钮进行此更新。
注意:请注意,如果您从 class models.TransientModel
继承,您的 table 的数据将随时间被删除时间。常见的用途是在向导上。如果你想要一个持久模型,你需要继承自 models.Model