Is it possible get variable value from loop?
For example:
<t t-set="flag" t-value="False"/>
<!-- flag now False -->
<tr t-foreach="o.lines" t-as="line">
<td><span t-field="line.name"/></td>
<td><span t-field="line.qty"/></td>
<t t-set="flag" t-value="True"/>
<!-- flag now True -->
</tr>
<!-- flag again False -->
Variable flag inside loop is different from variable flag outide. How send information outside loop?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Kế toán
- Tồn kho
- PoS
- Project
- MRP
Câu hỏi này đã bị gắn cờ
There is a GitHub Issue #4461 on this problem.
UPDATE: A patch to v8 was released and some good programming suggestions were made by Olivier on how to avoid using loops.
Updated my answer with the patch.
Thank you Stephen Mack !
As a workaround we can use:
1) If you can insert output in last iteration then use like:
<t t-set="total" t-value="0" />
<t t-foreach="o.order_line" t-as="line">
<t t-set="total" t-value="total+line.quantity" />
<t t-if="line_last">
<t t-esc="total" />
</t>
</t>
2) If you can't insert output in loop then use like:
<t t-set="total" t-value="sum([line.quantity for line in o.order_line])" />
Those are some ugly workarounds. But thanks for posting them.
I agree :(
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!
Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!
Đăng kýBài viết liên quan | Trả lời | Lượt xem | Hoạt động | |
---|---|---|---|---|
|
2
thg 3 24
|
1496 | ||
|
0
thg 9 23
|
5154 | ||
|
1
thg 8 17
|
9839 | ||
|
1
thg 3 15
|
6112 | ||
|
11
thg 4 23
|
92617 |
A patch and some ideas on how to calculate totals have been added to the github issue. https://github.com/odoo/odoo/issues/4461#issuecomment-72199618