Skip to content

Dynamic attributes

Dynamic attributes (attrs)

The format consists in key as the name of the attribute and the value is a tuple of three elements with the condition:

<field name="field_name" attrs="{'invisible': [('other_field', '=', False)]}" />

It is possible to use value from the form in the condition

<field name="field_name" attrs="{'invisible': [('other_field', '=', field3)]}" />

JSON Dynamic attributes (json_attrs)

It uses the conschek library to evaluate the conditions.

Ant the format consists of a JSON with the following structure:

{
"condition": "AND",
"rules": [
{
"field": "other_field",
"operator": "=",
"value": false
}
]
}

Inside the xml will be like this:

<field name="field_name" json_attrs="{'invisible': {'condition': 'AND', 'rules': [{'field': 'other_field', 'operator': '=', 'value': false}]}}" />

It is possible to use value from the form in the condition

{
"condition": "AND",
"rules": [
{
"field": "other_field",
"operator": "=",
"value": "$field3"
}
]
}

And is possible to nest conditions

{
"condition": "AND",
"rules": [
{
"condition": "OR",
"rules": [
{
"field": "age",
"operator": "<",
"value": 18
},
{
"field": "age",
"operator": ">",
"value": 65
}
]
},
{
"field": "citizenship",
"operator": "=",
"value": true
}
]
}