python - 如何通过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
}
解决方案
如果odoo_model = self.env['model.name']
then odoo_model._name
(注意下划线)是带有模型名称的字符串('name'
在您的示例中)但如果doc_model
需要一个真正的 Odoo 模型,则尝试使用self.env.ref('model.name')
(或正确的 XMLID)