odoo qweb сообщает о текущем пользовательском языке

#openerp #odoo-8

#odoo #odoo-8

Вопрос:

Я создаю отчет, который может быть переведен на текущий язык пользователя. итак, я попробовал следующий код. Отчет работает, но язык для перевода всегда partner_id является языком модели ( stock.picking ), Но я хочу, чтобы отчет был переведен на язык текущего зарегистрированного пользователя.

перевод отчета выглядит следующим образом:

 <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.lang lang или env.user.lang , но я получаю сообщение об ошибке, что у stock.picking нет пользователя.язык и т. Д.

Кроме того, есть ли способ отладки в XML-файле, я имею в виду, как я могу увидеть объект env в отчете

Комментарии:

1. Odoo переводит отчеты на язык зарегистрированного пользователя, поэтому вам не нужно указывать это.

2. Привет, WalR, язык отчета не изменяется на основе текущего зарегистрированного пользователя, но если идентификатор партнера совпадает с зарегистрированным пользователем, он меняется. Я думаю, что это меняется на основе partner_id не текущего зарегистрированного пользователя.

Ответ №1:

Поведение по умолчанию заключается в том, что в отчете задан язык партнера, отчет генерируется на языке партнера (партнера, который указан там в записи).

И если вы хотите обновить этот сценарий, вам нужно сделать такую другую вещь, как partner_id.lang should be replaced на 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>
  

Комментарии:

1. Привет, Emipro, я получаю следующую ошибку: у объекта » stock.picking» нет doc.user.partner_id

2. вместо пользователя нам нужно написать request.env.user , у меня есть обновленный ответ, попробуйте это.

3. Спасибо Emipro, это работает, также env.user.partner_id. можно использовать lang. Спасибо