Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
147 Lượt xem

Hi All,

I created a custom web form to capture an accountant’s signature, but the signature isn’t rendering automatically after signing; it only appears after the page is refreshed.



I added t-if="picking.accountant_signature" so that the signature should appear once it’s completed. However, it only shows up after refreshing the page.

 How can I fix this?

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,


The issue occurs because Odoo QWeb templates using t-if are evaluated only at initial render. When the picking.accountant_signature field is updated via a custom web form, the template doesn’t automatically refresh, so the signature only appears after a full page reload. QWeb is not reactive by default, which is why changes in backend fields aren’t immediately reflected in the DOM.


<img t-if="picking.accountant_signature" t-att-src="'data:image/png;base64,%s' % picking.accountant_signature"/>


To resolve this, you can use JavaScript to dynamically update the DOM after the signature is saved, or trigger a partial re-render of the template containing the signature. Alternatively, in Odoo 16/17, you can use OWL reactive components, which automatically update the view when the underlying state changes. Another approach is to ensure the <img> tag’s src attribute is dynamically bound and then refresh the component via JS after saving the signature.


Hope it helps

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hello vikas,

I think the issue in the img tag, because there is a no JavaScript that updates the DOM after the signature is submitted. you need to write something like this "selector: '#accept_accountant', for modal and event related to that.

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 9 25
336
0
thg 10 25
180
2
thg 8 25
1859
0
thg 7 25
842
1
thg 10 24
1964