This question has been flagged
2 Replies
16143 Views

Hello community,

How can I make a field readonly after save? It should not be editable after all.

I have try that with this, but it's not working at all.

product_reff = fields.Many2one('product.template', 'product_id', select=True)
is_created = fields.Boolean('Created')
def create(self, cr, uid, vals, context=None):
 vals['gio_is_created'] = True
 lot = super(stock_production_lot, self).create(cr, uid, vals, context=context)
 return lot


<field name="product_reff" position="attributes">
 <attribute name="attrs">{'readonly': [('is_created','=',True)]}</attribute>
 </field>


Thank you

Avatar
Discard

the answer dose not working for me, dose your problem solved?

Best Answer

hi,

<field name="product_reff" position="attributes"> <attribute name="attrs">{'readonly': [('is_created','=',True)]}</attribute>  </field>

this should works I think is is_created has a true value.

just try this also

<xpath expr='//field[@name='product_ref']' position='attributes'>

     <attribute name='attrs'>

        {'readonly': [('is_created','=',True)]}

    </attribute>

</xpath>

Avatar
Discard
Best Answer

You do not need an extra field like the `is_created`. You can use the `id` field. If the `id` is not set, the record is being created. If the `id` is set, the record has been created.

   

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

Avatar
Discard