在odoo中使用模板变量

Using template variable in odoo

我是 Odoo 新手。我目前正在使用 Odoo 的 v12。 如何像在 Django 中那样在 XML 中呈现模板变量?

例如views.py

def function_name(self):
    context={
    'something':something
    }
    .
    .
    return render(request, "index.html", context)

例如index.html

{% for item in context %}
<p>{{ item.something }}</p>
{% endfor %}

如何在 Odoo 中呈现它 XML 以及如何从 python 文件传递​​上下文变量?

您提供的模板代码示例看起来像 Django、Flask 等使用的 Jinja2。我相信 Jinja 可以在某些领域使用,但您应该在 Odoo 中大部分使用 Qweb。

Qweb 示例:

<div>
    <t t-if='condition'>
        <operations>
    </t>
</div>

这是 Odoo 12 中 Qweb 上的好文章 article

在 Odoo 中,我们可以定义一个字典,其中包含您要在模板中使用的所需值,然后将其作为第二个参数传递给 render 方法,其中模板名称作为第一个参数。它将呈现具有所需值的模板。

我正在为我们如何在 Odoo 中实现同样的问题添加一个示例。

values = dict()
values.update({
            'date': date_begin,
            'date_end': date_end,
            'grouped_tasks': grouped_tasks,
            'page_name': 'task',
            'default_url': '/my/tasks',
            'pager': pager,
            'searchbar_sortings': searchbar_sortings,
            'searchbar_groupby': searchbar_groupby,
            'searchbar_inputs': searchbar_inputs,
            'search_in': search_in,
            'search': search,
            'sortby': sortby,
            'groupby': groupby,
            'searchbar_filters': OrderedDict(sorted(searchbar_filters.items())),
            'filterby': filterby,
        })
        return request.render("project.portal_my_tasks", values)