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

Odoo 14 E


When creating a Customer Invoice and adding invoice lines, I have programmed it so that the Analytic Account is set based on the customer when the line is created.

After the method sets the analytic_account_id, I want to prevent the user from editing it to anything else.

When I try to make the field "readonly" it prevents any writing to it.   I want it to be readonly after setting it so it can't be changed from what the above sets it to.

Any ideas?



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

Hello,

    You can add 'attrs' on relevant field as below:

                 attrs="{'readonly': [('id', '!=', False)]}

Ảnh đại diện
Huỷ bỏ
Tác giả

This is what I tried. Unfortunately, when I do this, and try to save the record, I get the error: "The record has been modified, your changes will be discarded. Do you want to proceed?"

Then it will not save with the value I assigned.

Tác giả

And after I corrected that, it simply won't prevent editing. When I do it from .py level it won't save it.

Tác giả Câu trả lời hay nhất

What I needed was:  readonly="True" force_save="True"

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

Hi,

In your xml view of that field , please try with the below code.

< field name="analytic_account_id" attrs="{'readonly' : [('analytic_account_id', '!=', False)] }" / >

Thanks

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
3
thg 12 23
91049
1
thg 9 15
8966
4
thg 4 25
5358
3
thg 7 23
5760
2
thg 3 22
10532