首页 > 解决方案 > 如何通过odoo 10中表单视图上的按钮打开打印视图?

问题描述

我在表单视图上添加两个按钮。打印表格 A 打印表格 B 现有代码正在生成问题:

  File "/usr/lib/python3/dist-packages/odoo/tools/safe_eval.py", line 350, in safe_eval
return unsafe_eval(c, globals_dict, locals_dict)

文件“”,第 1 行,在 AttributeError 中:'model.name' 对象没有属性 'name'

在处理上述异常的过程中,又出现了一个异常:

ValueError: <class 'AttributeError'>: "'model.name' object has no attribute 'name'" while evaluating

"(object.state in ('draft','pending', 'done') and 'Firm - %s' % (object.name)) 或 'Firm - %s' % (object.name)"

<report 
        id="action_report_form_a"
        string="FORM B"
        model="model.name" 
        report_type="qweb-pdf"
        file="module_name.report_firms" 
        name="module_name.form_a"
        print_report_name="(object.state in ('draft','pending', 'done') and 'Firm - %s' % (object.name)) or 'Firm - %s' % (object.name)"
    />


    <report 
        id="action_report_form_b"
        string="FORM B"
        model="firms.registration" 
        report_type="qweb-pdf"
        file="module_name.report_firms" 
        name="module_name.form_b"
        print_report_name="(object.state in ('draft','pending', 'done') and 'Firms - %s' % (object.name)) or 'Firms - %s' % (object.name)"
    />
@api.multi
def get_report_values(self, docids, data=None):
    docs = self.env['model.name'].browse(docids)
    return {
        'doc_ids': docs.ids,
        'doc_model': 'model.name',
        'docs': docs,
        'proforma': True
    }

标签: pythonodoo

解决方案


如果odoo_model = self.env['model.name']then odoo_model._name(注意下划线)是带有模型名称的字符串('name'在您的示例中)但如果doc_model需要一个真正的 Odoo 模型,则尝试使用self.env.ref('model.name')(或正确的 XMLID)


推荐阅读