property_tags
The property_tags widget renders the tag values of a properties field. Two of its most important behaviors are hardcoded in the field wrapper and cannot be changed from a view.
September 18, 2026Updated September 18, 20265 min read
| Technical name | property_tags |
|---|---|
| Field types | properties (tags) |
| Views | form, list |
| Module | web, present in every Odoo database |
| Used in core | 0 explicit uses in Odoo 19 Community or Enterprise. The PropertyTags component behind it is used directly by property_value.xml inside the properties field. |
| Versions | Odoo 19.0, Odoo 20.0 |
| No-code setup | Partly. Properties themselves are configured by end users on the parent record, but this widget has no Studio entry and no settings of its own. |
| Alternatives | many2many_tags, properties, selection |
What the property_tags widget does
What this means for your team
Working examples
Two behaviors hardcoded in the field wrapper
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 19.0 | Verified | Verified against the shipped 19.0 source. |
| Odoo 20.0 | Verified | Verified against the 20.0 branch. No changes. |
Unchanged between the two branches we checked.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| A tag is visible on the form but missing on the kanban card | The tag has no color. In kanban views the widget filters out every tag whose color index is 0 or unset. Set a color on the tag in the property definition. |
| Clicking a tag does not open the color picker | The field wrapper passes canChangeTags: false, so the click handler blurs and returns. Change the color in the property definition on the parent record. It cannot be done from this widget. |
| Typing a new tag name offers 'No result' instead of 'Create' | Same cause. Tag creation is disabled in the field wrapper. Add the value to the property definition first, then select it here. |
| The cross on a pill does not remove the tag from the list of choices | deleteAction is hardcoded to 'value', so the cross unselects rather than deletes. Working as designed. Edit the property definition to remove a choice. |
Property_tags widget vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
property_tags | Selecting from a user-defined tag vocabulary on a properties field | Selection only: the vocabulary is read-only here and colorless tags vanish in kanban |
| many2many_tags | A shared tag vocabulary across many records | Backed by a real model, so tags are searchable, reportable and centrally managed |
| properties | The full set of user-defined properties on a record | Renders every property type, and is where tag properties normally appear |
| selection | One value from a fixed developer-defined list | Single value, defined in code rather than by users |
Frequently asked questions
Why can I not create a new tag on an Odoo property field?+
Why is my property tag invisible on the kanban card?+
Does property_tags have any options?+
Should I use properties or a real many2many for tags?+
Properties that outgrew themselves?
Property tags are perfect until someone asks to report across them, and then the json column becomes the problem. We know where that line is, and we move the vocabulary into real fields before it turns into a data-cleanup project.
Talk to an Odoo consultant