我有问题。在我的template.xml中,我有一个带有操作的表单标记:
viewController
如何将动作调用给予特定的product.id.我的意思是当它是product.id“1”它应该调用/ my / test / 1,当它是product.id“2”= / my / test / 2
我该如何处理这个问题?
谢谢
答案 0 :(得分:2)
理解你的所作所为非常重要。
在odoo中,如果您想为标记创建动态属性。你有两种可能性:
$ name是您的属性的名称。
示例
<t t-set="class" t-value="['class1','class2]"/>
<span t-att-class="class[0]"/>
html代码返回
<span class="class1"/>
用于评估代码的t-att- $名称。
与上一个相同,但参数是格式字符串而不仅仅是表达式,通常用于混合文字和非文字字符串:
例如
<t t-set="class" t-value="['class1','class2]"/>
<span t-attf-class="mainclass #{class[0]}"/>
<span t-attf-class="mainclass #{class[1]}"/>
html代码返回
<span class="mainclass class1"/>
<span class="mainclass class2"/>
在您的情况下,您需要将字面值与变量连接。
您必须使用t-attf- $ name
<form t-attf-action="/my/test/#{product.id}" method="post">
现在在python代码中,您需要创建一个动态路由。
在你的情况下,你的路线必须是这样的。
@http.route(['/my/test/<int:product_id>/'], type='http', auth="user", website=True)
def my_test_product(self, product_id, **kwargs):
#your code
return request.website.render("your_model.template_id")