Dynamic form elements using attrs
So far, we have only looked into changing forms depending on the user's groups (the groups
attribute on elements and the groups_id
field on inherited views) and nothing more. This recipe will show you how to modify the form view based on the value of the fields in it.
How to do it...
- Define an attribute called
attrs
on a form element:<field name="parent_id" attrs="{ 'invisible': [('is_company', '=', True)], 'required': [('is_company', '=', False)] }" />
- Ensure that all the fields you refer to are available in your form:
<field name="is_company"/>
This will make the parent_id
field invisible if the partner is a company and required if it's not a company.
How it works...
The attrs
attribute contains a dictionary with invisible
, required
, and readonly
keys (all of which are optional). The values are domains that...