【问题标题】:Inserting using id in many-to-many relationship in SQLAlchemy在 SQLAlchemy 中的多对多关系中使用 id 插入
【发布时间】:2013-06-04 11:21:15
【问题描述】:

假设我有一个使用关联表的多对多关系中的文章模型和标签模型。该标签具有属性 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 关联;我可以在不使用原始语句的情况下做到这一点吗?

【问题讨论】:

    标签: sqlalchemy many-to-many flask-sqlalchemy


    【解决方案1】:

    如果你有直接映射的关联表,比如TagAssociation,那么你可以直接创建TagAssociation(article_id=x, tag_id=y)。如果 OTOH 表仅存在于 relationship()secondary 参数中,则 ORM 没有直接系统,您需要运行 insert(),尽管您会使用 Session.execute(),即, Session.execute(assoc_table.insert(), params={"article_id": x, "tag_id": y}).

    【讨论】:

    • 如果文章是新实例呢?
    猜你喜欢
    • 1970-01-01
    • 2013-08-18
    • 2019-04-10
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 2015-03-29
    相关资源
    最近更新 更多