2016-05-25 17 views
1

私はフラスコ、フラスコ - 安らぎを使用するPythonのAPIを持っています...そしてフロントはAngular webappです。 モデル「キャンペーン」とモデルTagは、多対多の関係を持ち、Id, CampaignId, TagIdで構成されるテーブルCampaigns_Tagsに保管されています。フラスコrestfull many-to-many

キャンペーンを更新すると、キャンペーンとタグのリンクを作成/更新したいと考えています。

JSON

{ 
"Name": "MyCampaign", 
"Tags": [2] // List of tags id 
} 

Pythonのリソース

class CampaignsResource(BaseListResource): 
     args = parser_new.parse_args() 

     # set ClientId (same as current_user) and AuthorId 
     args['ClientId'] = session.get('client_id') 
     args['AuthorId'] = session.get('id') 

     # save object 
     new_campaign = self.model.create(**args) 


     return new_campaign, 201 

私のモデルは私のSQLAlchemyのの反射機構を内蔵しています。

私は1回のAPI呼び出しでそれを実行できますか?私は自分でそれをする必要がありますか?テーブルCampaigns_Tagsを記入する一般的な方法はありませんか?

私が相互にリンクしているリンクがある場合は、フラスコのrestfullと多対多の関係について何も見つかりませんでした。たぶん私は何かを誤解しています。私はPythonの初心者です

答えて

0

私の経験から、SQLAlchemyは多対多の関係を直接サポートしていません。私はいつも私のコードで関係の各側面を別々に扱わなければなりませんでしたが、同じ呼び出しで両側を処理することはOKです。

これは、API呼び出し側が多対多の標準と考えるようになり、2対多対1の単一の応答へのマージがコードによって処理されるようにします。