Protecting Fields

Updated 15 July 2026

Field Access controls individual pieces of information on a form – hide salary, make phone numbers read-only, or require a field before saving.

Overview

Fields are the boxes and labels on a form: Name, Email, Credit Limit, Cost, and so on.

With Field Access you can make a field invisible, read-only, or required for people on this profile. You can also remove the little external-link shortcut on related records, block quick-create on dropdowns, and apply rules only when certain conditions are true.

How It Works

Pick a model, then pick a field on that model. The switches decide how that field behaves for matched users.

Conditional options use a condition domain: the invisible/readonly/required behavior applies only when the record matches that condition (for example, only on confirmed orders).

Relation Domain narrows what appears in a many2one / many2many dropdown (for example, only show vendors, not all contacts).

Step-by-Step Guide

Fields Table

These are the settings you will see for this feature, explained in everyday language.

Field Explanations

Each field from the table above is explained in more detail here.

Model

Always select the model first; the field list depends on it.

Field

Use the human label when searching. Confirm with Technical Name if several fields look alike.

Technical Name

Helps support teams and imports identify the exact field.

Invisible

User cannot see the value in the UI (and related protections apply). Prefer this for secrets like cost or wage.

Read-Only

Good when people need to see a value but must not change it.

Required

Forces complete data entry for this role.

Remove External Link

Stops “peeking” into related records via the arrow/link control.

Remove Create

Useful when dropdowns would otherwise let users create new related records on the fly.

Remove Create & Edit

Stronger block on creating related records from the field.

Relation Domain

Keeps lists short and safe – only the contacts/products they should pick.

Condition Domain

Advanced: write when the special behavior should turn on. Ask an Odoo-capable colleague if you are unsure of domain syntax.

Conditional Invisible

Pairs with Condition Domain for situational hiding.

Conditional Read-Only

Pairs with Condition Domain for situational locking.

Conditional Required

Pairs with Condition Domain for situational required fields.

Tips

Common mistakes

Image

Protecting Fields