我是odoo的新人。我指的是关于插件的一些模块,但这次我没有找到答案。我的问题是我发送了电子邮件和打印按钮。打印按钮工作正常,但我的发送电子邮件按钮不是,错误说:
File "/home/FlexERP/git/FlexERP/addons/report/models/report.py", line 178,
in get_pdf
html = self.with_context(context).get_html(docids, report_name, data=data)
File "/home/FlexERP/git/FlexERP/addons/report/models/report.py", line
135,
in get_html
return report_model.render_html(docids, data=data)
File "/home/FlexERP/bitbucket/etsi-
addons/etsi_asset/reports/handover_report.py", line 9, in render_html
docs = self.env[self.model].browse(self.env.context.get('active_id'))
File "/home/FlexERP/git/FlexERP/FlexERP/api.py", line 752, in __getitem__
return self.registry[model_name]._browse((), self)
File "/home/FlexERP/git/FlexERP/FlexERP/modules/registry.py", line 174,
in __getitem__
return self.models[model_name]
KeyError: None
这是我的handover_report.py,它会触发错误
from odoo import fields, api, models
class HandoverReport(models.AbstractModel):
_name = 'report.etsi_asset.handover_info_temp'
@api.multi
def render_html(self, docids, data=None):
self.model = self.env.context.get('active_model')
docs = self.env[self.model].browse(self.env.context.get('active_id'))
print 'docs', docs
docargs = {
'doc_ids': docids,
'doc_model': 'asset.management.handover',
'docs': docs,
}
return self.env['report'].render('etsi_asset.handover_info_temp',
docargs)
但是,如果我在切回传邮件中注释我的代码,我的发送邮件按钮就可以正常使用
它说这行
line 9, in render_html docs =
self.env[self.model].browse(self.env.context.get('active_id'))
是一个错误,但我没有发现该代码有什么问题?任何人都可以 解释我为什么。我仍然在努力。寻找某人可以帮助我。 非常感谢。再一次,我是odoo的新手。
答案 0 :(得分:0)
您可以像这样尝试render_html ......
@api.model
def render_html(self, docids, data=None):
self.model = self.env.context.get('active_model')
user = self.env["res.users"].browse(self._uid)
docargs = {
'doc_ids': self.ids,
'doc_model': self.model,
'docs': user,
}
return self.env['report'].render('custom_reports.report_salereport', values=docargs)