2013-06-08 4 views
1

연관 테이블을 사용하여 다 대다 관계로 아티클 모델과 태그 모델이 있다고 가정 해 보겠습니다. 태그에는 id (기본 키) 및 tag_name 속성이 있습니다. 기사에는 많은 태그가 있습니다.SQLAlchemy에서 다 대다 관계로 ID를 사용하여 삽입하기

태그로 새 기사를 만들고 싶습니다. 추가 할 기존 태그의 ID가 있습니다.

나는 이런 식으로 뭔가가 :

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

(내가 플라스크-SQLAlchemy의를 사용하고 있습니다.) 내가 불필요하게 태그 개체에 대한 쿼리하지 않고이 작업을 수행하려면 어떻게

를?

사실 연관성 표에 tag_id, article_id 연관을 삽입하고 싶습니다. 원시 명세서를 사용하지 않고도이 작업을 수행 할 수 있습니까?

답변

2

연관 테이블을 직접 매핑 한 경우 TagAssociation과 같이 TagAssociation(article_id=x, tag_id=y)을 만들면됩니다. OTOH 테이블이 relationship()secondary 인수에만 존재하는 경우 ORM에는 직접 시스템이 없으므로 Session.execute(), 즉 Session.execute(assoc_table.insert(), params={"article_id": x, "tag_id": y})을 사용하지만 insert()을 실행해야합니다.

+0

기사가 새 인스턴스 인 경우 어때요? – rrw