Odoo,Qweb,Reportレポートの外部メソッド参照の問題
2547 ワード
class:
Report_view:
印刷中に問題が発生しました.
Answer:
「_name」でパスのエラーが発生した場合は、「report」の参照を追加する必要があります.
import time
from openerp.osv import osv
from openerp.report import report_sxw
class stock_picking_out(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(stock_picking_out, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
'get_partner_product': self._get_partner_product,
})
# todo :
def _get_partner_product(self, partner, product_id):
sql = """SELECT cp.partner_default_code FROM customer_product cp
LEFT JOIN res_partner rp ON rp.id = cp.partner_id
WHERE cp.product_id = %s AND cp.partner_id = %s"""
self.cr.execute(sql, (product_id, partner))
sql_data = self.cr.fetchall()
if len(sql_data) > 0:
for obj in sql_data:
partner_default_code = obj[0]
return partner_default_code
return ''
class report_stockpickingout(osv.AbstractModel):
_name = 'report.report_stock.report_stockpickingout'
_inherit = 'report.abstract_report'
_template = 'report_stock.report_stockpickingout'
_wrapped_report_class = stock_picking_out
Report_view:
<td class="text-left">
<span t-esc="get_partner_product(doc.partner_id.id,l.product_id.id)"/>
td>
印刷中に問題が発生しました.
QWebException: "'NoneType' object is not callable" while evaluating
'get_partner_product(doc.partner_id.id,l.product_id.id)'
Answer:
「_name」でパスのエラーが発生した場合は、「report」の参照を追加する必要があります.
class report_stockpickingout(osv.AbstractModel):
_name = 'report.report_stock.report_stockpickingout'