MY HATCH

ノーコードで項目を追加する — Odoo Community でできること・できないこと

画面の上で項目をドラッグして足す Studio は Enterprise 側の道具です。Odoo 19 Community で「プロパティ」「開発者モードの x_ 項目」「アドオン」の3つを実際に試し、どこまで画面だけで足せるかを数えました。

6分
最終更新: 2026年10月26日
項目の追加開発者モードプロパティビューの継承アドオン
目次

目次

このページには目次がありません

ノーコードで項目を追加する — Odoo Community でできること・できないこと

製造オーダに図面番号を持たせたい。受注に「検査の要否」を付けたい。運用を始めると、項目を1つ2つ足したい場面は必ず出てきます。

Odoo でこれを画面の上で行う道具は Studio ですが、Studio は Enterprise 側の機能です。Odoo 19 の Community(公式の配布物・692 個のモジュール)には入っていません。では Community ではどこまでできるのか。捨てる用の DB で、次の3つを実際に試しました。

足し方開発者モード向いている場面
プロパティ要らない顧客・商品などに、メモ代わりの項目を足す
開発者モードの x_ 項目要る製造オーダなど、どの画面にも項目を足す
アドオン(コードで書く)入力のチェック・計算・複数の環境に同じ物を配る

1. プロパティ:開発者モードなしで足せる

顧客のフォームの歯車のメニューに「プロパティを編集」があります。ここから、ラベルと型を決めるだけで項目が1つ増えます。

顧客のフォームで「プロパティを編集」を開き、ラベル「担当営業所」、型「選択」、値に本社・九州営業所・関西営業所を入れたところ

Odoo 19 Community の顧客のフォーム(画面は見本のデータです)

選べる型は、テキスト・整数・日付・選択・タグ・Many2one など 13 種類です。足したプロパティは、ほかの顧客のフォームにも同じ位置に出ます。

ただし、プロパティの欄を持っているのは 11 のモデルだけでした。顧客・利用者・商品・ロット・入出庫・商談・従業員・設備などです。製造オーダや受注には無いので、ここには足せません。また、プロパティの値は1つの列にまとめて保存されるため、帳票や集計で普通の項目と同じように使えるとは限りません(今回は試していません)。

2. 開発者モードで x_ の項目を作る

プロパティが無い画面には、開発者モード(URL の末尾に ?debug=1)で項目を作ります。「設定 › 技術設定 › フィールド」で新規を押し、名前・ラベル・モデル・型を決めます。

フィールドの作成画面。フィールド名 x_drawing_no、ラベル 図面番号、モデル 製造オーダ、型 Char

項目の名前は x_ で始まります(画面は見本のデータです)

型は 19 種類から選べます。選択の型なら、下の表に値を並べます。

検査区分(x_inspection)の選択肢に「全数・抜取り・不要」を並べたところ

必須・読み取り専用・インデックス・複製の対象も、ここで決めます(画面は見本のデータです)

作っただけでは画面に出ない

保存しても、製造オーダのフォームには何も増えていません。開発者モードのメニュー(虫のアイコン)を開いても、「項目を画面に足す」という操作はありませんでした。フォームに出すには、ビューを継承して XML を書く必要があります。

「設定 › 技術設定 › ビュー」で新規を押し、継承元に製造オーダのフォーム(mrp.production.form)を選んで、次の数行を書きます。

<data>
  <xpath expr="//field[@name='user_id']" position="after">
    <field name="x_drawing_no"/>
    <field name="x_inspection"/>
  </xpath>
</data>

継承ビューの画面。継承ビュー mrp.production.form、ビュー継承モード 拡張表示、アーキテクチャに上の XML

「ビュー継承モード」を「拡張表示」にします(画面は見本のデータです)

ここで1つ詰まりました。新規の継承ビューは「基本表示」で作られ、そのままだと製造オーダのフォームに項目が出ません。「拡張表示」に変えて保存し直すと、担当者の下に2つの項目が並びました。

製造オーダのフォーム。担当者の下に「図面番号 DW-2401」「検査区分 抜取り」

製造オーダのフォームの担当者の下に、足した2つの項目が出ます(画面は見本のデータです)

足した項目は、製造オーダの一覧のグループ分けにもそのまま使えました。

モジュールを更新しても残るか

製造のモジュールを更新(-u mrp)して確かめました。

足した物更新の後
x_ の項目(2 つの項目)と入れた値残った
継承ビュー残った
標準のフォームのビューを直接書き換えた分消えた

Odoo のビューの画面にも「標準ビューのアーキテクチャを編集することはお勧めしません」と出ます。開発者モードのメニューから標準のビューを開いて書き換えると、モジュールの更新で元に戻ります。足すときは必ず継承ビューを作ります。

もう1つ、ビューで使っている項目は消せません。消そうとすると、ビューに残っている項目は消せないというエラーで止まりました。先に継承ビューを消してから項目を消します。

3. アドオンで足す

画面だけでは足りないのは、次のような場面です。

  • 「全数検査なら図面番号が必須」のような、項目どうしの入力のチェック
  • 重複を許さない番号(項目の画面に、重複を禁じる欄はありません)
  • 試験用の DB と本番の DB に同じ物を確実に配る、変えた履歴を残す

同じ2つの項目を、小さなアドオン(jp_demo_customfield)で足して確かめました。画面で作る項目は名前が x_ で始まる決まりですが、アドオンで足す項目には使わず、jp_drawing_no・jp_inspection としています。

from odoo import api, fields, models
from odoo.exceptions import ValidationError


class MrpProduction(models.Model):
    _inherit = "mrp.production"

    jp_drawing_no = fields.Char(string="図面番号", index=True, copy=False)
    jp_inspection = fields.Selection(
        [("full", "全数"), ("sample", "抜取り"), ("none", "不要")],
        string="検査区分", default="sample",
    )

    # 図面番号の重複を許さない(Odoo 19 の書き方)
    _jp_drawing_no_uniq = models.Constraint(
        "unique(jp_drawing_no)",
        "同じ図面番号の製造オーダが既にあります。",
    )

    @api.constrains("jp_inspection", "jp_drawing_no")
    def _check_jp_drawing_no(self):
        for mo in self:
            if mo.jp_inspection == "full" and not mo.jp_drawing_no:
                raise ValidationError("全数検査の製造オーダには図面番号を入れてください。")

図面番号が空のまま検査区分を「全数」にして保存すると「全数検査の製造オーダには図面番号を入れてください。」

図面番号が空のまま「全数」で保存しようとすると、検証エラーで止まります(画面は見本のデータです)

フォームへの表示は、上と同じ形の継承ビューをアドオンの XML に書きます(項目の名前は jp_drawing_no・jp_inspection)。重複を禁じる models.Constraint の行は、配布物の製造オーダ(mrp_production.py)と同じ書き方に合わせた物で、今回の DB では試していません。

アドオンの作り方は「本格拡張はアドオンで — Odoo の拡張開発の基本」にまとめています。アドオンを外すと、そのアドオンが足した項目の列とデータは消えます。残したい項目は、外さないアドオンの側に持たせます。

できること・できないこと

やりたいことCommunity の画面だけで
顧客・商品などに項目を足すできる(プロパティ)
製造オーダ・受注などに項目を足すできる(x_ 項目+継承ビューの XML)
必須・読み取り専用・選択肢できる
項目をドラッグして並べるできない(Studio・Enterprise)
項目どうしの入力のチェック項目の画面に設定の欄が無い(アドオンで書く)
試験と本番に同じ物を配る手で同じ操作を繰り返すことになる(アドオンなら1回)

画面だけでも、少し XML を書けば項目は足せます。ただ、足した物が増えるほど「どの DB に何を足したか」がわからなくなります。当社は、お客様ごとに足す項目もアドオンにまとめ、版上げのたびに同じ手順で移せる形で用意します。版上げで壊さないための決まりは「アップデートしても壊れない — Odoo の拡張の作り方」にあります。

「作り方」の記事をもっと見る

ERP を、借りずに所有する。

Odoo Community を日本の業務に合わせ、ソース一式を人数無制限でお渡しします。

相談する(無料)