跳至内容
菜单
此问题已终结
3 回复
6651 查看

My concept is small, I have a many2one field, if i select one value means sequence number is created automatically based on Many2One value. Ex. many2one field like this ABC, BCD, if i select ABC and save it, its sequence is ABC001 it is correct, but again i can edit this Many2One like BCD, It is a Wrong record. Once user select ABC means and save it, again he wont change the value. how to do it.

形象
丢弃
最佳答案

Hi,

You can create one boolean field:test and then set that field as True on record creation. Then apply readonly attrs(boolean=True) for your many2one field. e.g. <field name="m2o_field" attrs="{'readonly': [('test','=',True)]}"/>

形象
丢弃
最佳答案

I have a other solution, not tested but in theory work fine.

In your object columns add

'id': fields.integer('ID',  readonly=True),

That will force openerp to add ID field in the object column property

After in your view, add

<field name="id" invisible="1"/>

That will but the ID field invisible on your form, and allow the next change to work

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

That will put the field on readonly when the record will be create. So dont forget to put required=true for the m2o_field, because if you forget to select a value, after creation you cant change it.

I prefer this solution, because no need to create a new field, no need to manage field to set it when record create.

Give me a feedback if you do it, please

形象
丢弃
最佳答案

You can block the value change of any many2one fields with widget attribute like, widget="many2one_list" example : <field name="id" widget="many2one_list"/> its gives a list formate and you cant change it

like this you can set other fields :one2many_list : many2one_list

形象
丢弃

read again, he wanna can SET a value at record creation, but disable change after, so edit record CANT change de value. He dont wanna have a list not modifiable, he wanna CANT change the selected.

相关帖文 回复 查看 活动
1
10月 15
15763
2
1月 19
19891
2
3月 15
10005
1
5月 25
848
2
5月 25
923