首页 > 解决方案 > Odoo 自定义报告 - 未找到外部 ID

问题描述

我正在库存(库存)模块中创建一个自定义报告,为此我创建了一个弹出视图(窗口)以供选择,然后在单击提交按钮后,将调用一个 python 函数。问题是我收到内部服务器错误说明

Value Error: External ID not found in the system: stock.customer_detail_report

这是stock_report_views.xml文件:

<odoo>
<data>
<report
            string="Customer Report"
            id="action_customer_detail_report"
            model="customer.detail"
            name="stock.customer_detail_report"
            file="stock.customer_detail_report"
            report_type="qweb-pdf"
            print_report_name="Customer_Detail"
        />
    </data>
</odoo>

这是模型customer_detail.py

class CustomerDetail(models.TransientModel):
    _name = 'customer.detail'
    _description = 'Customer Detail'    

    customer_vendor = fields.Many2one('res.partner', 
                        string="Customer/Vendor", help="List of Customer and Vendors")
    PO = fields.Integer('purchase.order', related="id")
    
    def open_table(self):
        self.ensure_one()
        return self.env.ref('action_customer_detail_report').report_action(self)

这是弹出视图(窗口)customer_detail.xml

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <record id="view_customer_detail" model="ir.ui.view">
        <field name="name">Customer Details</field>
        <field name="model">customer.detail</field>
        <field name="arch" type="xml">
            <form string="Choose your date">
                <group>
                    <group>
                        <field name="customer_vendor" />
                    </group>
                </group>
                <footer>
                    <button name="open_table" string="Retrieve the Customer Details" type="object" class="btn-primary"/>
                    <button string="Cancel" class="btn-secondary" special="cancel" />
                </footer>
            </form>
        </field>
    </record>
    <record id="action_customer_detail" model="ir.actions.act_window">
        <field name="name">Customer Detail</field>
        <field name="res_model">customer.detail</field>
        <field name="view_type">form</field>
        <field name="view_mode">form</field>
        <field name="view_id" ref="view_customer_detail"/>
        <field name="target">new</field>
    </record>
    <menuitem id="menu_customer_detail" name="Customer Detail" parent="stock.menu_warehouse_report" sequence="100" action="action_customer_detail_report"/>
</odoo>

这是最终视图customer_detail_report.xml:

<?xml version="1.0" encoding="utf-8" ?>
<odoo>
    <template id="action_customer_detail_report">

            <t t-call="web.basic_layout">
              <div class="page" style="padding-top:-10%;">
                   <div class="col-xs-4" style="padding:1;">
                      <h1>This is a test</h1>
                   </div>
              </div>
            </t>
    </template>
</odoo>

这是清单文件:

{
    'name': 'Inventory',
    'version': '1.1',
    'summary': 'Manage your stock and logistics activities',
    'description': "",
    'website': 'https://www.odoo.com/page/warehouse',
    'depends': ['product', 'barcodes'], 
    'category': 'Warehouse',
    'sequence': 13,
    'demo': [
        'data/stock_demo_pre.xml',
        'data/procurement_demo.xml',
        'data/stock_demo.xml',
        'data/stock_orderpoint_demo.xml',
        'data/stock_demo2.xml',
        'data/stock_location_demo_cpu1.xml',
        'data/stock_location_demo_cpu3.xml',
    ],
    'data': [
        'security/stock_security.xml',
        'security/ir.model.access.csv',
        'views/stock_menu_views.xml',
        'data/stock_traceability_report_data.xml',
        'data/procurement_data.xml',

        'report/report_stock_forecast.xml',
        'report/stock_report_views.xml',
        'report/report_package_barcode.xml',
        'report/report_lot_barcode.xml',
        'report/report_location_barcode.xml',
        'report/report_stockpicking_operations.xml',
        'report/report_deliveryslip.xml',
        'report/report_stockinventory.xml',
        'report/report_stock_rule.xml',
        'report/transfer_printlabel_report.xml',

        'wizard/stock_change_product_qty_views.xml',
        'wizard/stock_picking_return_views.xml',
        'wizard/stock_scheduler_compute_views.xml',
        'wizard/stock_immediate_transfer_views.xml',
        'wizard/stock_backorder_confirmation_views.xml',
        'wizard/stock_overprocessed_transfer_views.xml',
        'wizard/stock_quantity_history.xml',
        'wizard/customer_detail.xml',
        'wizard/stock_rules_report_views.xml',
        'wizard/stock_warn_insufficient_qty_views.xml',
        'wizard/product_replenish_views.xml',
        'wizard/stock_track_confirmation_views.xml',
        'wizard/stock_package_destination_views.xml',
        'wizard/transfer_printlabel_view.xml',

        'views/res_partner_views.xml',
        'views/product_strategy_views.xml',
        'views/stock_production_lot_views.xml',
        'views/stock_picking_views.xml',
        'views/stock_scrap_views.xml',
        'views/stock_inventory_views.xml',
        'views/stock_quant_views.xml',
        'views/stock_location_views.xml',
        'views/stock_warehouse_views.xml',
        'views/stock_move_line_views.xml',
        'views/stock_move_views.xml',
        'views/product_views.xml',
        'views/res_config_settings_views.xml',
        'views/report_stock_traceability.xml',
        'views/stock_template.xml',
        'views/stock_rule_views.xml',
        'views/stock_package_level_views.xml',        
        'views/product_sequence_views.xml',

        'data/default_barcode_patterns.xml',
        'data/stock_data.xml',
        'data/stock_sequence_data.xml',
    ],
    'qweb': [
        'static/src/xml/stock_traceability_report_backend.xml',
    ],
    'installable': True,
    'application': True,
    'auto_install': False,
    'pre_init_hook': 'pre_init_hook',
    'post_init_hook': '_create_warehouse',
    'uninstall_hook': 'uninstall_hook',
}

知道为什么我无法链接报告并且没有获得弹出窗口和最终报告视图吗?

标签: pythonodooodoo-10odoo-11odoo-12

解决方案


看起来您正在直接在库存模块中添加自定义。我建议您制作一个自定义模块以正确实施。

但是,列出了我在上面的代码中发现的错误

  1. customer_detail_report.xml未在清单文件中定义。

  2. 模板 IDcustomer_detail_report.xml错误。

        <template id="customer_detail_report">
            <t t-call="web.basic_layout">
                  <div class="page" style="padding-top:-10%;">
                       <div class="col-xs-4" style="padding:1;">
                          <h1>This is a test</h1>
                       </div>
                  </div>
                </t>
        </template>
    

推荐阅读