サーチ…


前書き

ここでは、Odoo 8で使用されているフィールドの詳細を見つけることができます

パラメーター

パラメーター説明
string = "名前" フィールドのオプションのラベル
compute = "_ compute_name_custom" フィールドを計算フィールドに変換する
store = True 計算された場合、結果が保存されます
select = True フィールドにインデックスを強制する
readonly = True フィールドはビューでのみ読み込まれます
逆= "_書き込み名" 更新トリガ時
必須= True 必須フィールド
translate = True 翻訳イネーブル
ヘルプ= 'blabla' ヘルプのツールチップテキスト
comodel_name = "model.name" 関連モデルの名前
inverse_name = "field_name" 反対のモデルの関係列
relation = 'many2many_table_name' many2manyのリレーショナルテーブル名
columns1 = 'left_column_name' リレーショナル表の左列名
column2 = 'right_column_name' リレーショナル表の右列名

備考

OdooとORM: OdooはORM(Object Relational Mapping)技術を使用してデータベースと対話します。 ORMは、Pythonから使用できる仮想オブジェクトデータベースを作成するのに役立ちます。 ORM技法では、各モデルは、Models.modelをサブクラス化するクラスによって表される。

Models.modelは、通常のデータベース永続化Odooモデルのメインスーパークラスです。 Odooモデルは、このクラスを継承して作成されます。

例:

class Employee(Models.model):
    _name = 'module.employee'

    #Rest of the code goes here

ここで、_nameは構造属性で、作成するデータベーステーブルの名前をシステムに通知します。

各モデルには多数のクラス変数があり、各クラス変数はモデルのデータベースフィールドを表します。各フィールドはopenerp.fields.Fieldクラスのインスタンスで表されます。 Odooのフィールドは以下の通りです。

1ブールフィールド

ex: flag = fields.Boolean()

2 Charフィールド

ex: flag = fields.Char()

3テキスト

ex: flag = fields.Text()

4 Html

ex: flag = fields.Html()

5整数

ex: flag = fields.Integer()

6フロート

ex: flag = fields.Float()

7日付

ex: flag = fields.Date()

8日時

ex: flag = fields.Datetime()

9選択

ex: flag = fields.Selection()

10 Many2one

ex: flag = fields.Many2one()

11 One2many

ex: flag = fields.One2many()

12 Many2many

ex: flag = fields.Many2many()

Odoo 8の例フィールド

OdooはORM(Object Relational Mapping)技術を使用してデータベースと対話します。 ORMは、Pythonから使用できる仮想オブジェクトデータベースを作成するのに役立ちます。 ORM技術では、各モデルは、Models.modelのサブクラスであるクラスによって表される。 Models.modelは、通常のデータベース永続化Odooモデルのメインスーパークラスです。 Odooモデルはこのクラスを継承して作成されます

name = fields.Char(string='New Value')

flag = fields.Boolean(string='Flag',default=False)

amount = fields.Float(string='Amount',digits=(32, 32))

code = fields.Selection(string='Code',selection=[('a', 'A'),('b','B')])

customer = fields.Many2one(comodel_name='res.users')

sale_order_line = fields.One2many(comodel_name='res.users', inverse_name='rel_id')

tags = fields.Many2many(comodel_name='res.users',
                        relation='table_name',
                        column1='col_name',
                        column2='other_col_name')


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow