【问题标题】:model not found odoo v8找不到模型 odoo v8
【发布时间】:2018-10-08 15:51:34
【问题描述】:

我想在采购申请模块中做一个报告。所以到目前为止我已经完成了。 purchase_requisition_report.py

from odoo import models, fields, api

class purchase_requisition_report(models.Model):
    _name = 'purchase.requisition.report'
    _description="Purchase Requisition Report"
    _column={
        'date': fields.datetime('Order Date', readonly=True, help="Date on which this document has been created"),
        'state': fields.selection([('draft', 'Request for Quotation'),
                                   ('confirmed', 'Waiting Supplier Ack'),
                                   ('approved', 'Approved'),
                                   ('done', 'Done'),
                                   ('cancel', 'Cancelled')], 'Purchase Requisition Status', readonly=True),
        'name': fields.char('Purchase Requisition No'),
        'product_id': fields.many2many('product.product','Product Name'),
        'supplier': fields.many2many('res.partner','Supplier Name'),
    }
    _order = 'date desc'
    def init(self, cr):
        tools.sql.drop_view_if_exists(cr, 'purchase_requisition_report')
        cr.execute("""
            create or replace view purchase_requisition_report as (
            SELECT 
              purchase_requisition.name, 
              product_product.name_template, 
              res_partner.display_name, 
              purchase_order.name, 
              purchase_requisition.state
            FROM 
              purchase_requisition_line inner join purchase_requisition on(purchase_requisition_line.requisition_id = purchase_requisition.id)
              inner join product_product on(purchase_requisition_line.product_id = product_product.id)
              inner join purchase_order on(purchase_order.requisition_id = purchase_requisition.id)
              inner join res_partner on(purchase_order.partner_id = res_partner.id);
            """)

purchase_requisition_report_view.xml

    <?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>

    <record id="view_purchase_requisition_report_tree" model="ir.ui.view">
        <field name="name">purchase.requisition.report.tree</field>
        <field name="model">purchase.requisition.report</field>
        <field name="arch" type="xml">
                <tree string="Purchase Requisition Report">
                    <field name="name"/>
                    <field name="product_id"/>
                    <field name="supplier"/>
                    <field name="state"/>
                </tree>
        </field>
    </record>

    <record id="view_purchase_requisition_report_search" model="ir.ui.view">
        <field name="name">purchase.requisition.report.search</field>
        <field name="model">purchase.requisition.report</field>
        <field name="arch" type="xml">
            <search string="Purchase Requisition Report">
                <filter string="Waiting" domain="[('state', '=' ,'confirm')]" help="Confirm Requisition"/>
                <filter string="Approved" domain="[('state','=','accepted')]" help="Approved Requisition"/>
                <filter string="Done" domain="[('state','=', 'done')]" help="Done Requisition"/>
                <group expand="0" string="Extended Filters...">
                    <field name="product_id"/>
                    <field name="user_id"/>
                    <field name="company_id" groups="base.group_multi_company"/>
                    <field name="date" string="Creation Date"/>
                    <field name="date_confirm"/>
                    <field name="date_valid"/>
                </group>
                <group expand="1" string="Group By">
                    <filter string="Purchase Requisition No" context="{'group_by':'name'}"/>
                    <filter string="Supplier" context="{'group_by':'supplier'}"/>
                    <filter string="Product" context="{'group_by':'product_id'}"/>
                    <filter string="Status" context="{'group_by':'state'}"/>
                    <filter string="Create Month" context="{'group_by':'create_date:month'}" help="Creation Date"/>
                </group>
            </search>
        </field>
    </record>
    <record id="action_purchase_requsition_report" model="ir.actions.act_window">
        <field name="name">Purchase Requisition</field>
        <field name="res_model">purchase.requisition.report</field>
        <field name="view_mode">tree</field>
        <field name="view_id" ref="view_purchase_requisition_report_tree"></field>
    </record>
    <menuitem id="base.next_id_73" name="Purchase" parent="base.menu_reporting" sequence="10"/>
    <menuitem action="action_purchase_requsition_report" id="menu_action_purchase_requsition_report" parent="base.next_id_73" sequence="10"/>

</data>
</openerp>

openerp.py

    {
    'name': 'Purchase Requisitions',
    'version': '0.1',
    'author': 'OpenERP SA',
    'category': 'Purchase Management',
    'website': 'https://www.odoo.com/page/purchase',
    'description': """
This module allows you to manage your Purchase Requisition.
===========================================================

When a purchase order is created, you now have the opportunity to save the
related requisition. This new object will regroup and will allow you to easily
keep track and order all your purchase orders.
""",
    'depends' : ['purchase'],
    'demo': ['purchase_requisition_demo.xml'],
    'data': ['views/purchase_requisition.xml',
              'security/purchase_tender.xml',
              'wizard/purchase_requisition_partner_view.xml',
              'wizard/bid_line_qty_view.xml',
              'purchase_requisition_data.xml',
              'purchase_requisition_view.xml',
              'purchase_requisition_report.xml',
              'report/purchase_requisition_report_view.xml',
              'purchase_requisition_workflow.xml',
              'security/ir.model.access.csv','purchase_requisition_sequence.xml',
              'views/report_purchaserequisition.xml',
    ],
    'auto_install': False,
    'test': [
        'test/purchase_requisition_users.yml',
        'test/purchase_requisition_demo.yml',
        'test/cancel_purchase_requisition.yml',
        'test/purchase_requisition.yml',
    ],
    'installable': True,
}

做完这一切后,我得到以下错误

    Error details:
Model not found: purchase.requisition.report

Error context:
View `purchase.requisition.report.tree`
[view_id: 1419, xml_id: n/a, model: purchase.requisition.report, parent_id: n/a]" while parsing file:///C:/Program%20Files/Odoo%208.0-20150515/server/openerp/addons/purchase_requisition/report/purchase_requisition_report_view.xml:5, near
<record id="view_purchase_requisition_report_tree" model="ir.ui.view">
        <field name="name">purchase.requisition.report.tree</field>
        <field name="model">purchase.requisition.report</field>
        <field name="arch" type="xml">
                <tree string="Purchase Requisition Report">
                    <field name="name"/>
                    <field name="product_id"/>
                    <field name="supplier"/>
                    <field name="state"/>
                </tree>
        </field>
    </record>

我无法找出错误在哪里,感谢任何帮助。谢谢。 P.S:我使用的是 Odoo V.8

【问题讨论】:

  • 删掉错误日志而留下有用信息的原因是什么?抱歉,这让提供帮助变得更加困难

标签: python xml odoo odoo-8


【解决方案1】:

没有导入的代码没有执行,所以有可能找不到。

从模块的__init__.py 文件中导入:

from . import purchase_requisition_report

【讨论】:

  • 感谢您的回复。但是模块的 init.py 文件还是报告目录的 init.py 文件?因为在模块的 init 文件中您导入模块(CRM、Stock、Expense 等),但这是一个报告文件。我还想再提一件事,我的报告的 .py 文件没有编译文件,即 purchase_requisition_report.pyc。
  • 如果文件在reports文件夹中,那么init文件应该在同一个文件夹中。在这种情况下,您也必须将from . import reports 添加到模块的初始化文件中。重点是没有导入的文件,没有执行。
【解决方案2】:

您的日志应该充满了导入错误。如果您使用的是 Odoo v8,则应使用 openerp 而不是 odoo,因为那时 odoo 包不存在,因此您需要这样做:

from openerp import models, fields, api, tools

我在imports 中包含了工具,因为您没有包含。此外,如果您将创建一个 SQL 视图用作模型表,您应该指示 ORM 不要尝试为您的模型添加创建表:

_auto = False

之后,如果您在 Odoo 服务器启动时没有在日志中看到任何其他错误,则应该没问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    相关资源
    最近更新 更多