【问题标题】:Alternative to render_qweb_pdf in odoo-14在 odoo-14 中替代 render_qweb_pdf
【发布时间】:2021-05-07 07:32:58
【问题描述】:

我想将我的 pdf 报告另存为附件,以便我可以从该报告中制作一些附件的 zip 文件。

    pdf = self.env.ref('module_name..report_id').render_qweb_pdf(self.ids)
    b64_pdf = base64.b64encode(pdf[0])
    # save pdf as attachment
    name = "My Attachment"
    return self.env['ir.attachment'].create({
        'name': name,
        'type': 'binary',
        'datas': b64_pdf,
        'datas_fname': name + '.pdf',
        'store_fname': name,
        'res_model': self._name,
        'res_id': self.id,
        'mimetype': 'application/x-pdf'
    })

我从HERE 获得了适用于 odoo 13.0 版的解决方案,但它在 odoo 14.0 版中效果不佳。它说



Odoo Server Error

Traceback (most recent call last):
  File "/home/admin/odoo/odoo-14/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/home/admin/odoo/odoo-14/odoo/http.py", line 683, in dispatch
    result = self._call_function(**self.params)
  File "/home/admin/odoo/odoo-14/odoo/http.py", line 359, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/admin/odoo/odoo-14/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/admin/odoo/odoo-14/odoo/http.py", line 347, in checked_call
    result = self.endpoint(*a, **kw)
  File "/home/admin/odoo/odoo-14/odoo/http.py", line 912, in __call__
    return self.method(*args, **kw)
  File "/home/admin/odoo/odoo-14/odoo/http.py", line 531, in response_wrap
    response = f(*args, **kw)
  File "/home/admin/odoo/odoo-14/addons/web/controllers/main.py", line 1733, in run
    result = action.run()
  File "/home/admin/odoo/odoo-14/odoo/addons/base/models/ir_actions.py", line 629, in run
    res = runner(run_self, eval_context=eval_context)
  File "/home/admin/odoo/odoo-14/addons/website/models/ir_actions.py", line 61, in _run_action_code_multi
    res = super(ServerAction, self)._run_action_code_multi(eval_context)
  File "/home/admin/odoo/odoo-14/odoo/addons/base/models/ir_actions.py", line 498, in _run_action_code_multi
    safe_eval(self.code.strip(), eval_context, mode="exec", nocopy=True)  # nocopy allows to return 'action'
  File "/home/admin/odoo/odoo-14/odoo/tools/safe_eval.py", line 346, in safe_eval
    raise ValueError('%s: "%s" while evaluating\n%r' % (ustr(type(e)), ustr(e), expr))
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/admin/odoo/odoo-14/odoo/http.py", line 639, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/admin/odoo/odoo-14/odoo/http.py", line 315, in _handle_exception
    raise exception.with_traceback(None) from new_cause
ValueError: <class 'AttributeError'>: "'ir.actions.report' object has no attribute 'render_qweb_pdf'" while evaluating
"action = env['wgs.form.1721.a1.list'].generate_attachments(env.context.get('active_ids'))"

我尝试过来自不同站点的类似解决方案,但它产生的结果与此类似。请帮忙。我认为这是 odoo-14 中的新功能。我也是odoo开发的新手,所以我不太了解

【问题讨论】:

    标签: python odoo odoo-14


    【解决方案1】:
    pdf = self.env.ref('module_name..report_id')._render_qweb_pdf(self.ids)
    

    你必须像这样放_render_qweb_pdf。

    【讨论】:

      【解决方案2】:
      def action_get_attachment(self):
              pdf = self.env.ref('project2.tr_cetificate_action_id')._render_qweb_pdf(self.ids)
              b64_pdf = base64.b64encode(pdf[0])
              name = "My Attachment"
              return self.env['ir.attachment'].create({
                  'name': name,
                  'type': 'binary',
                  'datas': b64_pdf,
                  # 'datas_fname': name + '.pdf',
                  'store_fname': name,
                  'res_model': self._name,
                  'res_id': self.id,
                  'mimetype': 'application/x-pdf'
              })
      

      此代码适用于版本 14。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-03
        • 2021-02-21
        • 2021-03-06
        • 2021-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-29
        相关资源
        最近更新 更多