İçereği Atla
Menü
Bu soru işaretlendi
3 Cevaplar
90722 Görünümler

Hello, I don't understand how this readonly options works in openerp. For example in a module I create this column:

'number': fields.float('Number', readonly=True)

So when I install module with this column, in OpenERP object that is added it should show that this column is readonly? because in my case id does not. It shows that readonly option is not chosen for that column. Why it is ignoring my option for readonly=True?

Avatar
Vazgeç
En İyi Yanıt

If you read your openerp log you can find this:

openerp.osv.fields: required=True is deprecated: making a boolean field `required` has no effect, as NULL values are automatically turned into False. args: {'readonly': True}

Set the readonly in python code, like this:

'number': fields.float('Number', {'readonly': True})

or in a xml, like this:

<field name="number" readonly="1" />
Avatar
Vazgeç

I think the python code should be 'number': fields.float('Number', readonly=True).

In the new version of openerp this syntax is deprecated. The right syntax is the code in the answer.

how set field attr to readonly by function.?

It's better if you open a new answer for this.

En İyi Yanıt

Check first if there is no readonly='False' for this field in your view xml definition !

Avatar
Vazgeç
En İyi Yanıt

That definition is for the column in the database only, not what is displayed to the user via the XML view.

You must include <field name="number" readonly="1" /> in your XML to make it read only to the user.

The proper python code would be 'number': fields.float('Number', {'readonly': True}) but then how will you ever get information into the field via the web interface? This will make the field readonly for every user. Even if you later set the field to readonly="0" in the XML, when you goto save your data, an error will be thrown.

Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
3
Eyl 21
4944
1
Eyl 15
8831
4
Nis 25
4818
3
Tem 23
5597
2
Mar 22
10387