For example, there is a sale order report and it's id = "action_report_saleorder",consequently REPORT_ID in example = sale.action_report_saleorder (Example odoo v11)def action_generate_attachment(self):""" this method called from button action in view xml """# generate pdf from report, use report's id as referenceREPORT_ID = 'some_report_id'pdf = self.env.ref(REPORT_ID).render_qweb_pdf(self.ids)# pdf result is a listb64_pdf = base64.b64encode(pdf[0])# save pdf as attachmentATTACHMENT_NAME = "My Attachment Name"return self.env['ir.attachment'].create({'name': ATTACHMENT_NAME,'type': 'binary','datas': b64_pdf,'datas_fname': ATTACHMENT_NAME + '.pdf','store_fname': ATTACHMENT_NAME,'res_model': self._name,'res_id': self.id,'mimetype': 'application/x-pdf'})Why when I perform a similar action, nothing works for me? | |
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- 客戶關係
- e-Commerce
- 會計
- 庫存
- PoS
- Project
- MRP
此問題已被標幟
2
回覆
7450
瀏覽次數
Hi,
While you doing this operation, a pdf report will be stored under ir_attachment table. Here the res_model and res_id will be the reference for attachment for relating with a record. Here let's take sale.order of id 20, here you need to attach the pdf report with the current sale order then we will give res_model as sale.order and res_id as 20.
here the self._name will the current model name.
Update:-
render_qweb_pdf render the HTML content defined in the report template and returns a pdf file. If you call the function with the param res_ids then it will automatically save the attachment with pdf content.
相關帖文 | 回覆 | 瀏覽次數 | 活動 | |
---|---|---|---|---|
|
5
5月 23
|
15075 | ||
|
2
12月 23
|
5055 | ||
|
1
5月 22
|
2324 | ||
|
0
4月 22
|
1784 | ||
|
2
9月 17
|
4235 |
Look into odoo tips, may be its helpful: https://learnopenerp.tumblr.com/