UI上のフォームやリストビューで使う各項目(フィールド)の種類と、どのように表示・操作するか(ウィジェット)を定義するものです。
✅ 基本構成:Fields and Widgetsとは?
- Field(フィールド):Odooモデル(例:
res.partner,sale.order)のデータ項目。例:文字列、日付、金額、関連オブジェクトなど - Widget(ウィジェット):フィールドの表示・入力形式。例:ドロップダウン、カレンダー、タグ形式など
🧩 よく使うフィールドタイプ(主要なデータ型)
| フィールドタイプ | 内容 | 例 |
|---|---|---|
Char | 文字列(短いテキスト) | 顧客名、メールアドレス |
Text | 長文テキスト | メモ、説明文 |
Integer | 整数 | 数量、カウント |
Float | 小数 | 金額、比率 |
Boolean | 真偽値(チェックボックス) | アクティブ、承認済み |
Date / Datetime | 日付・日時 | 締切日、登録日時 |
Many2one | 他モデルとの関連(1対多の片側) | 顧客(→ res.partner) |
One2many | 他モデルとの逆参照(1対多) | 請求書明細、注文行 |
Many2many | 多対多関係 | タグ、関連ユーザー |
Selection | 選択肢から選ぶ固定リスト | ステータス、カテゴリなど |
Monetary | 金額+通貨フィールド | 製品価格(currency_id付き) |
🎛️ よく使うウィジェット一覧(フォームでの表示制御)
| Widget名 | 対応フィールド | 表示形式の概要 |
|---|---|---|
statusbar | Selection | ステータスバー形式(例:見積→受注) |
many2one | Many2one | ドロップダウン+オートコンプリート |
many2many_tags | Many2many | タグ形式(例:スキル、カテゴリ) |
date / datetime | Date, Datetime | カレンダーUI |
boolean_toggle | Boolean | スライドスイッチ |
monetary | Float | 通貨表示(currency_id必要) |
percentpie | Float | 円グラフ表示 |
image | Binary | 画像表示 |
url | Char | リンク形式で表示 |
email | Char | メールリンク形式で表示 |
🔧 Studioでのカスタマイズ(GUIで追加可能)
Odoo Studioを使えば、コードを書かずに以下の操作が可能です:
- フィールドの追加(例:
Char,Selection,Many2oneなど) - ウィジェットの指定(例:ステータスバー、タグ形式)
- 入力制限や必須設定、条件表示(ドメインや可視制御)
<field name="state" widget="statusbar" statusbar_visible="draft,sent,sale" />
<field name="partner_id" widget="many2one" />
<field name="amount_total" widget="monetary" options="{'currency_field': 'currency_id'}" />
💡 補足:使い分けの考え方
- 見せたい/操作させたい形式に応じてウィジェットを選ぶ
- 業務フロー(例:進捗、承認)には
statusbarが有効 - タグ入力のような複数選択には
many2many_tagsが便利 - 表示上は同じでも、内部のデータ型が異なる点に注意
コメントを残す