如何在SQLAlchemy中将joinedloadcontains_eager用于启用查询的关系(lazy =“ dynamic”选项)

如何在SQLAlchemy中将joinedloadcontains_eager用于启用查询的关系(lazy =“ dynamic”选项),第1张

如何在SQLAlchemy中将joinedload / contains_eager用于启用查询的关系(lazy =“ dynamic”选项)

问题在于

User
职位的属性是动态关系;它应该返回一个
Query
对象。该属性无法知道或安全地进行通信,这一次,所有相关项均已加载

一个简单的解决方法是拥有两个属性,一个属性使用正常的延迟加载行为(您可以将其设置为在有意义的情况下对特定查询进行紧急加载),另一个属性始终返回动态关系。

class User(base):    id = Column(Integer, primary_key=True)    name = Column(String, nullable=False, unique=True)    created_at = Colmn(DateTime, nullable=False, default=func.now())class Post(base):    id = Column(Integer, primary_key=True)    user_id = Column(Integer, ForeignKey(User.id), nullable=False)    user = relationship(User, backref=backref('posts'))    title = Column(String, nullable=False)    body = Column(Text, nullable=False)    created_at = Colmn(DateTime, nullable=False, default=func.now())User.post_query = relationship(Post, lazy="dynamic")


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5629785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存