boolean
The default Checkbox for every boolean field in Odoo: what the bare boolean widget does, why it never hides, and when to trade it for a toggle, star, or favorite variant.
August 21, 2026Updated August 21, 20268 min read
| Studio name | Checkbox |
|---|---|
| Technical name | boolean |
| Field types | boolean |
| Views | form, list, kanban, settings |
| Module | web, present in every Odoo database |
| Used in core | 4 explicit occurrences across 3 modules, including website, hr_recruitment, mrp, plus every boolean field with no widget attribute |
| 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 | boolean_toggle, boolean_favorite, boolean_icon, upgrade_boolean |
What the Checkbox field does
What this means for your team
Setting it up in Odoo Studio (no code)
What Studio cannot do here
Working examples
What the source tells you that the docs do not
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. The development branch renders the checkbox as a toggle on small screens; details below. |
| Odoo 19.0 | Verified | Verified against the shipped source. No options, standard checkbox rendering. |
| Odoo 18.0 | Verified | File is byte-identical to 19.0 apart from a header comment. |
| Odoo 17.0 | Verified | Same modern implementation and behavior as 19.0. |
| Odoo 16.0 | Verified | Legacy class-based implementation, same checkbox behavior and no options. |
Upgrade note for 16 to 19. Nothing to do. The widget was rewritten from the legacy class style in Odoo 16 to the modern descriptor in 17, but option surface (none) and behavior are identical, and the 18 and 19 files match byte for byte apart from a header comment. XML written for any version renders the same through 19.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| Ticking the box seems to do nothing after leaving the page | The plain checkbox does not save on click; navigating away discarded the unsaved edit. Save the record, or switch the field to boolean_toggle if immediate saving is the intended behavior. |
| Options passed to the widget have no effect | The boolean widget declares and reads no options; anything in options="{...}" is ignored. Use boolean_toggle, boolean_favorite, or boolean_icon, which are the variants that actually take configuration. |
| Checkbox is greyed out and cannot be clicked | The field or the view is readonly, so the underlying CheckBox component renders disabled. Remove the readonly attribute or check record rules and field-level readonly conditions. |
| A custom boolean widget disappears from kanban cards when unchecked | The custom descriptor is missing isEmpty: () => false, so false is treated as an empty field. Copy the isEmpty line from the core boolean descriptor into the custom widget. |
| Checkbox renders as a toggle on phones after upgrading to Odoo 20 | Expected. The master branch renders plain booleans as switch-style toggles on small screens. No fix needed; behavior (save on record save) is unchanged, only the visual differs. |
Checkbox field vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
boolean | Data-entry flags saved with the record | No self-save and no configuration, the neutral default |
| boolean_toggle | Act-now switches like Active or Published | Saves the whole record immediately on click |
| boolean_favorite | Starred or favorite flags | Star icon with an autosave option, on by default |
boolean_icon | Compact icon buttons in dense forms | Renders a configurable icon instead of a box |
| upgrade_boolean | Enterprise-feature settings | Opens an upgrade dialog on Community and reverts the tick |
Frequently asked questions
Do I ever need to write widget="boolean" explicitly?+
Does clicking the checkbox save the record?+
What options does the boolean widget support?+
Why does an unchecked boolean still show on kanban cards?+
Can I add a checkbox field without a developer?+
Is the boolean widget changing in Odoo 20?+
Booleans triggering nothing, or the wrong thing?
A checkbox is rarely just a checkbox: it usually needs a default, a visibility rule, and an automation behind it. We wire Odoo forms so a tick actually drives the workflow, from Studio automation rules to custom modules, on Odoo 16 through 19.
Book a free consultation