odoo は ApiPost を呼び出します

得る

API

http:IP:PORT/{
   
   {version}}/model_name

クエリは指定されたフィールドを返します

積極的な選挙

レコードセットはID、名前のデータを返します。

http:IP:PORT/{
   
   {version}}/model_name?query={id,name}

逆選挙

レコードセットは名前以外のデータを返します

http:IP:PORT/{
   
   {version}}/model_name?query={-name}

インラインリターン

http:IP:PORT/{
   
   {version}}/model_name?query={id,name,manager{name},dad{id,name}}

返されたデータをフィルタリングするためのフィルタ

ドメイン形式で返されたデータをフィルターするには、前に書いたドメイン構文の概要を確認してください。

単一条件

http:IP:PORT/{
   
   {version}}/model_name?filter=[["kind", "=", "manpower"]]

多条件

http:IP:PORT/{
   
   {version}}/model_name?filter=["|",["status", "=", "OK"],["status", "=", "READY"]]

& 共同クエリ

使用して接続する

http:IP:PORT/{
   
   {version}}/model_name?query={id, name}&filter=[["id", ">", 60], ["id", "<", 70]]  

ページネーション

page_size (オプション) & page (オプション)

http:IP:PORT/{
   
   {version}}/model_name?query={id, name}&page_size=5&page=3

注: prev、current、next、total_pages は、それぞれ前のページ、現在のページ、次のページ、合計ページを表示します。

限界

返されるデータの数を制限する

http:IP:PORT/{
   
   {version}}/model_name?query={id, name}&limit=3  

役職

インターフェースフォーム

データ

{
	"params": {
		"data": {
			"name": "技术部",
        }
    }
}

メニーツーワン

Many2one フィールドはテーブルの ID に直接関連付けられています。

{
	"params": {
		"data": {
			"name": "技术部",
			"dad":1  // dad是Many2one字段
        }
    }
}

ワンツーメニー

1) 新規作成

(0, 0,{ 値 }) 値の情報に基づいて新しいレコードを作成します

BODY でドメイン表現を使用する


(0, 0, { 値 })は [0, 0, {"consumable": "0.3", "engineer_u_res": 1,}] と表現されます。

{
	"params": {
		"data": {
            "name": "清理现场9",
            "res_consume":[
                [0, 0,{
                "consumable": "0.3",
                "engineer_u_res":1,
                }],
            ],     // res_consume是One2many字段
        }
    }
}
2) アップデート

(1,ID,{values}) id=IDでレコードを更新(id=IDに対してwriteを実行し、valuesにデータを書き込む)

3) 削除

(2,ID) id=ID のデータを削除します (unlink メソッドを呼び出してデータとマスター/スレーブ データ リンク関係全体を削除します)

たくさんの2たくさん

1) 新しいレコードを作成する

(0,0,{values}) 値の情報に基づいて新しいレコードを作成します

2) 記録を更新する

(1,ID,{values}) id=IDでレコードを更新(valuesにデータを書き込む)

3) データとリンク関係を削除します

(2,ID) id=ID のデータを削除します (unlink メソッドを呼び出してデータとマスター/スレーブ データ リンク関係全体を削除します)

4) データを削除せずに、このレコードのリンク関係を削除します。

(3,ID) 主従データのリンク関係を切断しますが、このデータは削除しません

5) このレコードの新しいマスター/スレーブ リンク関係を作成します。

(4,ID) id=IDのデータに主従リンク関係を追加します。

6) 全レコードのデータリンク関係を削除

(5) スレーブデータの全てのリンク関係を削除するには、全てのスレーブデータに対して(3,ID)を呼び出します。

7) 全レコードのデータリンク関係を削除し、新たに主従リンク関係を作成します。

(6,0,[IDs]) 元のレコードを ID のレコードに置き換えます (つまり、最初に (5) を実行し、次にループ ID を実行して (4,ID) を実行します)。

例:[(6, 0, [8, 5, 6, 4])] 设置 many2many to ids [8, 5, 6, 4]

コンテクスト

コンテキストを渡す

{
    "params": {
        "context": {
            "context_1": "context_1_value",
            "context_2": "context_2_value",
            ....
        },
        "data": {
            "field_1": "field_1_value",
            "field_2": "field_2_value",
            ....
        }
    }
}

API

http:IP:PORT/{
   
   {version}}/model_name

置く

書き込み方法はPOSTと同じです

データ

PUTのデータ書き込み方法はPOSTと同じです。

フィルター

データをフィルタリングする

{
    "params": {
        "filter": [["id", "=", 95]],
        "data": {
            "name": "Test product"
        }
    }
}

コンテクスト

コンテキストは、レコードの更新に関連するコンテキストを渡すために使用されます。

{
    "params": {
        "context": {
            "context_1": "context_1_value",
            "context_2": "context_2_value",
            ....
        },
        "filter": [["id", "=", 95]],
        "data": {
            "field_1": "field_1_value",
            "field_2": "field_2_value",
            ....
        }
    }
}

手術

これは、1 対多フィールドと多対多フィールドでのみ機能します。

概念としては、one2many または many2many フィールドのすべてのレコードを置換したくない場合があり、代わりに他のレコードを追加したり、一部のレコードを削除したりすることがあり、そこに操作を配置するということです。

基本的に、プッシュ、ポップ、削除の 3 つの PUT 操作があります。

  • Push は、既存のリンク レコードに他のレコードを追加/追加するために使用されます。
  • Pop は、更新中のレコードから特定のレコードを削除/リンク解除するために使用されますが、システム上では削除されません。
  • delete は、レコードを削除/リンク解除し、完全に削除するために使用されます。
{
    "params": {
        "filter": [["id", "=", 95]],
        "data": {
            "related_product_ids": {
                "push": [102, 30],
                "pop": [45],
                "delete": [55]
            }
        }
    }
}

API

http:IP:PORT/{
   
   {version}}/model_name

消去

API

http:IP:PORT/{
   
   {version}}/model_name/<int:id>

フィルター

http:IP:PORT/{
   
   {version}}/model_name?filter=[["id", "=", 95]]

Guess you like

Origin blog.csdn.net/weixin_44141284/article/details/130762753