Ir al contenido
Menú
Se marcó esta pregunta
1 Responder
12198 Vistas

I created a qweb report and it worked successfully. When I came to translate it I added this code:

<template id="my_report_id">
    <t t-call="report.html_container">
        <t t-foreach="doc_ids" t-as="doc_id">
        <t t-raw="translate_doc(doc_id, doc_model, 'lang' , 'my_module.my_report_id_document')"/>
        </t>
    </t>
</template>

When I tried to run it I got the following error 


QWebException: ""'my model name' object has no attribute 'lang'" while evaluating
'doc.lang'" while evaluating
"translate_doc(doc_id, doc_model, 'lang' , 'my_module.my_report_id_document')"

I changed it to several choices , for example:

'partner_id.lang'

user.lang

instance.session.user_context.lang, as per this link 

with no success. 

The module I'm working on I created it from scratch and it does not depend on any other module. How to resolve this issue.  

Avatar
Descartar
Mejor respuesta

Hi,


instance.session.user_context.lang is in webclient (javascript) 


You want probably use  "request.lang"

But the method translate_doc take a field to specify the lang, not a lang directly...


In your case you should browse yourself in the correct lang the doc (with request.lang) and set translatable to True in the context


That should works, here the code in odoo...


if ctx.get('translatable') is True:
    qcontext['o'] = doc
else:
    # Reach the lang we want to translate the doc into
    ctx['lang'] = eval('doc.%s' % lang_field, {'doc': doc})
    qcontext['o'] = self.pool[model].browse(cr, uid, doc_id, context=ctx)

 

Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
1
jul 25
1688
3
may 25
1516
1
may 25
1675
1
abr 25
2265
1
feb 25
1550