2016-10-07 15 views
2

現在のユーザー言語に翻訳できるレポートを作成しています。私は次のコードを試しました。レポートは機能していますが、翻訳する言語は常にpartner_idstock.picking)のモデルですが、レポートを現在のログに記録されているユーザーlangに翻訳します。odoo qweb現在のユーザーlang

レポート翻訳は以下の通りです:

<template id="report_print_recvng_wkst"> 
    <t t-call="report.html_container"> 
     <t t-foreach="doc_ids" t-as="doc_id"> 
      <t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'wms_report.report_recvngwkst_document')"/> 
     </t> 
    </t> 
</template> 

、私もuser.langlangまたはenv.user.langを入れてみましたが、私はstock.pickingはまたuser.langなど

を持っていないというエラーが出ますxmlファイルでデバッグする方法はありますか?つまり、レポートにenvオブジェクトが表示されるのですか?

+0

Odooに置き換える必要がありpartner_id.langのような他のことを行う必要があるあなたがあることを指定する必要はありませんので、ログインしたユーザーの言語でレポートを翻訳。 – Zety

+0

こんにちはWalR、Langは現在のログインユーザーに基づいて変更されませんが、partner_idがログインユーザーと同じ場合は変更されます。私はそれが現在のログインユーザーではないpartner_idに基づいて変更すると思います。 – user280960

答えて

1

デフォルトの動作では、レポートパートナー言語が設定され、レポートはパートナーの言語そこに記録)。

そして、あなたはそのシナリオを更新したい場合、あなたはrequest.env.user.partner_id.lang

<template id="report_print_recvng_wkst"> 
    <t t-call="report.html_container"> 
     <t t-foreach="doc_ids" t-as="doc_id"> 
      <t t-raw="translate_doc(doc_id, doc_model, 'request.env.user.partner_id.lang', 'wms_report.report_recvngwkst_document')"/> 
     </t> 
    </t> 
</template> 
+0

こんにちはEmipro、私は次のエラーが表示されます: "stock.picking"オブジェクトはdoc.user.partner_idを持っていません – user280960

+0

代わりに私たちは 'request.env.user'を書く必要があります、私は答えを更新しました。 –

+0

Emipro、ありがとう、env.user.partner_id.langも使えます。ありがとう – user280960

関連する問題