3

関連テーブルを使用して多対多の関係にある Article モデルと Tag モデルがあるとします。タグには属性 id (主キー) と tag_name があります。記事にはたくさんのタグがあります。

タグ付きの新しい記事を作成したいのですが、追加する既存のタグの ID があります。

私はこのようなものを持っています:

self.tags = [ Tag.query.filter_by(id=tag_id).first() for tag_id in tag_ids ]

(Flask-SQLAlchemy を使用しています。)

Tag オブジェクトを不必要に照会せずにこれを行うにはどうすればよいですか?

実際には、関連付けテーブルに tag_id、article_id 関連付けを挿入するだけです。生のステートメントを使用せずにこれを行うことはできますか?

4

1 に答える 1

4

のように関連付けテーブルを直接マップしている場合は、TagAssociationを作成するだけTagAssociation(article_id=x, tag_id=y)です。OTOH テーブルが のsecondary引数にのみ存在する場合relationship()、ORM には直接システムがありませinsert()ん。Session.execute()Session.execute(assoc_table.insert(), params={"article_id": x, "tag_id": y})

于 2013-06-09T20:27:16.703 に答える