many2many_tags
The Odoo Tags field: what it does, how to set it up in Studio without code, and every option it supports.
Quick summary
- The Tags field, called
many2many_tagsin code, shows a many2many or one2many relation as removable, searchable pills instead of a list. - Enable colors in Odoo Studio with the Use colors checkbox, or in XML with
options="{'color_field': 'color'}". - Studio covers the display. Restricting the tag list, blocking tag creation, or making tags depend on another field needs view-level work.
- The color picker appears only in form views and only when a color field is set. That is the cause of nearly every "picker not working" report.
- Colors save straight to the tag record, so recoloring a tag on one record changes it everywhere.
- It is the most-used relational widget in Odoo core, with 391 uses across 77 modules.
- Behavior is unchanged from Odoo 16 through 19. Odoo 20 changes it, and we are tracking the development branch.
| Studio name | Tags |
|---|---|
| Technical name | many2many_tags |
| Field types | many2many, one2many |
| Views | form, list, kanban, calendar, settings |
| Form variant | form.many2many_tags, which adds the color picker and edit_tags |
| Also registered as | calendar.one2many, calendar.many2many |
| Module | web, present in every Odoo database |
| Used in core | 391 occurrences across 77 modules, including point_of_sale, mail, im_livechat, product, account, project |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0, Odoo 16.0 |
| No-code setup | Yes, via Odoo Studio (Enterprise) |
| Alternatives | many2many_tags_avatar, many2many_checkboxes, selection_badge, Default one2many list |
What the Tags field does
What this means for your team
Setting it up in Odoo Studio (no code)
What Studio cannot do here
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
color_field | field name | Name of an integer field on the related model storing the color index, 0 to 11. Enables colored pills and, in form views, the color picker. |
no_create | boolean | Removes creation entirely, so the dropdown offers only existing records. Overrides no_quick_create and no_create_edit. |
no_quick_create | boolean | Removes the inline Create "typed text" entry. Creation through the popup form still works. |
no_create_edit | boolean | Removes the Create and Edit entry that opens a popup form. Inline creation still works. |
create | domain | A domain string enabling creation conditionally, evaluated against the current record. |
search_threshold | number | Minimum characters typed before the search fires. Without it, the dropdown searches on focus. |
placeholder_field | field name | A char field on the current record supplying a dynamic placeholder. |
create_name_field | field name | Which field receives the typed text on inline creation. Read in extractProps; it appears in no options panel or documentation.(default: name) |
no_edit_color | boolean | Form views only. Colors stay visible, but the picker is disabled. |
edit_tags | boolean | Form views only. Clicking a tag opens its form in a dialog. Takes priority over the color picker. |
Working examples
How the color field really works
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Changes visible in the development branch are described below, and this page will be re-verified after launch. |
| Odoo 19.0 | Verified | All options in the table above confirmed against the shipped source and tested on a clean database. |
| Odoo 18.0 | Verified | Same option names and behavior. No XML changes needed. |
| Odoo 17.0 | Verified | Same option names and behavior. No XML changes needed. |
| Odoo 16.0 | Verified | Same option names and behavior. No XML changes needed. |
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| Tags render grey, clicking does nothing | No color field configured, or the named field is not an integer on the related model. In Studio, tick Use colors. In XML, add color_field. |
| Color picker works on the form but not in the list view | Expected. The picker belongs to the form-view variant only. No fix needed; this is the designed behavior. |
| Users still create tags despite no_create_edit | That option only removes Create and Edit. Use no_create to block creation completely. |
| Dropdown appears empty | Usually a field domain or record rule excluding everything, or an inactive-record filter. Test as an admin with no domain to isolate it. |
| Not all matching records appear in the dropdown | The dropdown is capped, and Search More opens the full list. Narrow with a domain rather than expecting an exhaustive dropdown. |
| Color reverts after discarding the form | It does not. The color was already saved to the tag record. Restore it from the tag's own form. |
| Duplicate near-identical tags accumulating | Creation is open by default. Merge the duplicates, then apply no_create. |
Tags field vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
many2many_tags | Long or user-extensible tag lists | Search-based, so unselected options are hidden |
many2many_tags_avatar | People, such as followers, assignees, attendees | Shows each record's avatar inside the pill |
many2many_checkboxes | Short fixed sets users must see in full | Renders every option, with no search and no creation |
selection_badge | Selection fields rather than relations | Works on selection and many2one, single value |
Default one2many list | Child records with several attributes | Full editable grid, for when a name is not enough |
Frequently asked questions
Can I add a Tags field in Odoo without a developer?+
Why is the color picker not showing on my tags?+
How do I stop users creating new tags?+
Can many2many_tags be used on a one2many field?+
How do I limit which tags appear in the dropdown?+
When should I use checkboxes instead of tags?+
Does the Tags field work the same in Odoo 16, 17 and 18?+
Will the Tags field change in Odoo 20?+
Do tag color changes save immediately?+
Past what Studio can do?
Restricted tag lists, locked taxonomies, tags that depend on another field: small changes that need view-level work. We build custom Odoo views, fields and modules for teams running Odoo 16 through 19, and we are already testing against the Odoo 20 development branch.
Book a free consultation