Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
12736 Visualizzazioni

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
Abbandona
Risposta migliore

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
Abbandona
Post correlati Risposte Visualizzazioni Attività
0
ott 25
18
1
lug 25
2661
3
mag 25
2206
1
mag 25
3261
1
apr 25
3021