微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

odoo-14 中 render_qweb_pdf 的替代方案

如何解决odoo-14 中 render_qweb_pdf 的替代方案

我想将我的 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,**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,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 开发的新手,所以我不太了解

解决方法

<ContentControl>
    <ContentControl.Style>
        <Style TargetType="ContentControl">
            <Style.Triggers>
                <DataTrigger Binding="{Binding YourProperty}" Value="{x:Null}">
                    <Setter Property="Visibility" Value="Collapsed" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ContentControl.Style>
</ContentControl>

你必须像这样放置_render_qweb_pdf。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。