2017-01-31 5 views
0

多くのインスタンスに接続されます1つのモデルインスタンス上の多対多の関係を通じて追加しました形式:データは、私はこのようになりますシンプルな多対多の関係を持っている

Page 1: 
    - tag1 
    - tag2 
Page 2: 
    - tag3 
    - tag4 

次のようにルックスをロード:

data = {'Page 1': ['tag1', 'tag2'], 'Page 2': ['tag3', 'tag4']} 

私はデータベースに挿入しようとします:その後、

def load_data(): 
    for page_title in data: 
     p = (Page.query.filter_by(title=page_title).first() or 
      Page(
       title=page_title 
      ) 
     ) 

     for tag_name in data[page_title]: 
      t = (Tag.query.filter_by(name=tag_name).first() or 
       Tag(
        name=tag_name 
       ) 
      ) 

      p.tags.append(t) 
     db.session.add(p) 
     db.session.commit() 

そして再びそれをダンプ:

def dump_data(): 
    pages = Page.query.all() 
    for p in pages: 
     print p.title + ":" 
     for t in p.tags: 
      print " - " + t.name 

タグは複数のページに関連付けられて取得されています

Page 1: 
    - tag1 
    - tag3 
    - tag4 
    - tag2 
Page 2: 
    - tag2 
    - tag3 
    - tag4 

私は理由として損失でいます。 (これはダンプ方式ではなく、フラスコ管理者がDBに存在することを確認しています)。

(私はPythonの、フラスコ&フラスコ-SQLAalchemyに新たなんだということを付け加えなければならないので、私は一緒に行く!しかし、私はこれを回避読んで無駄に複数の代替案を試してみたとしてこれを作っています。)

答えて

0

これは本当にシンプルなものであることが判明し、年月を経て発見されました。ページとタグのデータは削除されましたが、関連は削除されていました。

関連する問題