2015-02-06 1 views
1

Я пытаюсь напечатать отчет для настраиваемого модуля я в здании с Odoo, но когда я пытаюсь напечатать, я получаю следующее сообщение об ошибке:Ошибка при получении: TemplateAssertionError: нет фильтра с именем «n» при печати отчета?

File "/opt/odoo/openerp/service/report.py", line 93, in go 
    result, format = openerp.report.render_report(cr, uid, ids, object, datas, context) 
    File "/opt/odoo/openerp/report/__init__.py", line 40, in render_report 
    return registry['ir.actions.report.xml'].render_report(cr, uid, ids, name, data, context) 
    File "/opt/odoo/openerp/api.py", line 241, in wrapper 
    return old_api(self, *args, **kwargs) 
    File "/opt/odoo/openerp/addons/base/ir/ir_actions.py", line 155, in render_report 
    return new_report.create(cr, uid, res_ids, data, context) 
    File "/opt/odoo/addons/report_webkit/webkit_report.py", line 376, in create 
    result = self.create_source_pdf(cursor, uid, ids, data, report_xml, context) 
    File "/opt/odoo/openerp/report/report_sxw.py", line 461, in create_source_pdf 
    return self.create_single_pdf(cr, uid, ids, data, report_xml, context) 
    File "/opt/odoo/addons/report_webkit/webkit_report.py", line 334, in create_single_pdf 
    head_mako_tpl = mako_template(header) 
    File "/opt/odoo/addons/report_webkit/webkit_report.py", line 88, in mako_template 
    return mako_template_env.from_string(text) 
    File "/usr/local/lib/python2.7/dist-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 769, in from_string 
    return cls.from_code(self, self.compile(source), globals, None) 
    File "/usr/local/lib/python2.7/dist-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 493, in compile 
    self.handle_exception(exc_info, source_hint=source) 
    File "<unknown>", line 24, in template 
TemplateAssertionError: no filter named 'n' 

Я гугле много и не мог найти ни малейшего понятия как решить эту проблему.

Я использую webkit отчетности. Вот мой файл .mako.

<html> 
<head> 
    <style type="text/css"> 

    </style> 
</head> 
    <body> 
Testing 
</body> 
</html> 

Это, как я называю отчет из .py файла

report_sxw.report_sxw('report.hotel.webkit', 
         'hotel.webkit', 
         'addons/hotel_webkit/report/report_hotel.mako', 
         parser=report_webkit_html) 

И, наконец, XML вызова

<report id="sim.report_sim_hotel" 
     name="hotel.webkit" 
     auto="False" 
     model="sim.resumen_wizard" 
     file="hotel_webkit/report/report_hotel.mako" 
     string="Hotel Report Test" 
     webkit_header="base_headers_webkit.base_reports_portrait_header" 
     report_type="webkit"/> 

Любой ключ к пониманию того, что делает это означает, что ошибки и что еще можно Я проверю, чтобы работа над докладом была оценена.

Thanks

+0

Вы узнали, что это было? –

+0

Здравствуйте @ DannyW.Adair Я закончил переключение типов отчетов, так как webkit обесценился. Сначала боль, но не было смысла продолжать исправлять ошибки webkit, поскольку он больше не используется. – JordanBelf

+0

Спасибо! Я нашел исправление и опубликую как ответ сейчас. –

ответ

2

Я просто исправил эту проблему для наших счетов-фактур.

Odoo переключился с Mako в v7 на Jinja2 в v8, с «имитированным» обозначением Мако, где больше всего все работает как раньше. В коде Inline Python этого фильтра «n» нет.

Вы должны переключиться с «| n» от Mako на «безопасный» Jinja2 (этот фильтр означает «не убежать» - обычно применяется к вещам, возвращающим HTML).

Если вы не используете его в шаблоне, это, вероятно, в вашей базе заголовка!

У нас была линия

${_debug or ''|n} 

там, где должно быть

${_debug or ''|safe} 

для Odoo.