2017-09-26 8 views
0

product_template内に私のproduct_productモデルを含めたいと思います。ループバックモデル関係:別のコレクション内にコレクションを含める方法

1 - 各商品テンプレートには独自のproduct_productバリエーション「HasMany」があります。

2 - product_productは

3- product_templateのみ関連product_productバリエーションで満たさなければならない唯一のテンプレート "belongsToの" product_templateを有しています。

4 - 2つのモデルがseprately保存されているので、私はfind()関数の呼び出し時に、私はそれに関連するproduct_productで満たさproduct_templateモデルを取得したいと思い

のGet製品テンプレート(複数のことでした)機能:

Producttemplate.find({ 
     include: { 
     relation: 'variations', 
     scope: { 
      fields: ['sku', 'name', 'price', 'regular_price', 'weight', 'description', 'stock_quantity'], 
     }, 
     }, 
    }) 

product_productモデル:

このモデルは、私を含めるべきですnはproduct_template

{ 
     "name": "product_product", 
     "base": "PersistedModel", 
     "strict": true, 
     "options": { 
     "validateUpsert": true 
      }, 
     "properties": { 
     "_id_Odoo": { 
      "type": "number" 
     }, 
     "sku": { 
      "type": "string", 
      "id": true, 
      "required": true, 
      "description": "Yes it's SKU" 
     }, 
     #fields 
     }, 
     "validations": [], 
     "relations": { 
     "product": { 
      "type": "belongsTo", 
      "model": "product_template", 
      "foreignKey": "_id_Odoo" 
     } 
     }, 
     "acls": [], 
     "methods": {} 
    } 

product_templateモデル:

これ以上のget製品テンプレートの結果:

このモデルは、product_product

{ 
    "name": "product_template", 
    "base": "PersistedModel", 
     "strict": true, 
     "options": { 
     "validateUpsert": true 
      }, 
    "properties": { 
    "_id_Odoo": { 
     "type": [ 
     "number" 
     ] 
    } 
    "sku": { 
     "type": "string", 
     "id": true, 
     "required": true, 
     "description": "Yes it's SKU" 
    }, 
    "name": { 
     "type": "string" 
    } 
    }, 
    "scope": { 
    "include": "variations" 
    }, 
    "hidden": ["_id_Odoo"], 
    "validations": [], 
    "relations": { 
    "variations": { 
     "type": "hasMany", 
     "model": "product_product", 
     "foreignKey": "_id_Odoo" 
    } 
    }, 
    "acls": [], 
    "methods": {} 
} 

の検索結果を含める必要があります

{ sku: 'AHWLI05942-FUSCHIA', variations: List [] }, { sku: 'AHWLI05943-BLACK', variations: List [] }, { sku: 'AHWLI05943-BURGUNDY', variations: List [] }, { sku: 'AHWLI05944-BLACK', variations: List [] }, { sku: 'AHWLI05944-MARRON', variations: List [] }, { sku: 'AHWLI05945-BLUE', variations: List [] } 

私はバリエーションにポイントすると正確な構造を取得する方法任意のアイデアを私は機能を取得し、variations.listに私は未定義を取得しますか?チームの役割のためのモデルレベルでの私のモデル "TeamRole" belongsToの "チーム" とユーザー」の

+0

のForeignKeyとしてparent_templateを作ったあなたはであなたのコンテキストを表示することができますモデルにアクセスしていますか?それはHTTPを介して、またはモデルのJSでですか? – nVitius

答えて

0

申し訳ありませんが、関係や構造の誤解だけでした。製品モデルにテンプレートがあるかどうかを確認する機能を作成しました。

product_productモデル:それは無用ですので、私は以下のモデルで関係を削除したので、私はSKUでidプロパティを削除し、_id_Odooフィールドを削除し、その後、私は、テンプレートモデルのIDが含まれているidフィールドとparent_templateフィールドを追加しました。

{ 
     "name": "product_product", 
     "base": "PersistedModel", 
     "strict": true, 
     "options": { 
     "validateUpsert": true 
      }, 
     "properties": { 
     "id": { 
      "type": "number" 
      "id": true 
     } 
     "parent_template": { 
      "type": "number" 
     }, 
     "sku": { 
      "type": "string", 
      "required": true, 
      "description": "Yes it's SKU" 
     }, 
     #fields  
    } 

product_templateモデル:私はSKUで_id_odooとidプロパティを削除し、このモデルのためのIDを作成し、関連して、私は

{ 
    "name": "product_template", 
    "base": "PersistedModel", 
     "strict": true, 
     "options": { 
     "validateUpsert": true 
      }, 
    "properties": { 
    "id": { 
     "type": "number", 
     "id" : true 
    } 
    "sku": { 
     "type": "string", 
     "required": true, 
     "description": "Yes it's SKU" 
    }, 
    "name": { 
     "type": "string" 
    } 
    }, 
    "scope": { 
    "include": "variations" 
    }, 

########## 

    "relations": { 
    "variations": { 
     "type": "hasMany", 
     "model": "product_product", 
     "foreignKey": "parent_template" 
    } 
    }, 
############# 
} 
1

サンプルコードの一部。

teamRole.json

"validations": [], 
    "relations": { 
    "team": { 
     "type": "belongsTo", 
     "model": "Team", 
     "foreignKey": "" 
    }, 
    "user": { 
     "type": "belongsTo", 
     "model": "User", 
     "foreignKey": "" 
    } 
    } 

例の検索クエリ、

query.js

app.models.TeamRole.find({ 
     where: { 
      userId: user.id 
     }, 
     include: { 
     relation: 'team' 
     } 
    },function(err,teams){ 
    console.log("teams will have all the include teams[] with team role ") 
    }); 

上記の例を参考にしてください。

関連する問題