【问题标题】:Flask SQLAlchemy paginate over objects in a relationshipFlask SQLAlchemy 对关系中的对象进行分页
【发布时间】:2016-07-13 13:14:21
【问题描述】:

所以我有两个模型:文章和标签,以及正确设置的 m2m 关系。

我有一个“文章/标签/”类型的路由,我想只显示与该标签相关的那些文章

我已经解决了这个问题,但我正在寻找一个更优雅的解决方案,包括 分页,但我无法在文章列表中使用paginate,因为它不是queryset

我需要链接到某个标签的所有文章的查询集。我以多种不同的方式尝试了order_by,但惨遭失败。我无法在文档中找到有用的东西,有什么想法吗?

【问题讨论】:

  • 您可以尝试在关系上配置lazy="dynamic"。注意事项适用。
  • 问题是,从一方面来说,Article,如果我执行 article.tags,它会返回一个 BaseQuery,但另一方面是一个对象列表。我是 SQLAlchemy 的新手,所以我不知道为什么会发生这种情况
  • 那是后面的引用。你也可以在 backref 上配置lazy="dynamic"。
  • 谢谢我把它从:articles = db.relationship('Article', secondary=tagged, backref=db.backref('tags', lazy='dynamic'))改成:articles = db.relationship('Article', secondary=tagged, backref=db.backref('tags', lazy='dynamic'), lazy="dynamic")好像我错过了第二个lazy

标签: python pagination sqlalchemy


【解决方案1】:

虽然 OP 的问题是 lazy="dynamic",但我遇到了一个已经在使用它的关系的问题。就我而言,问题原来是我使用的是直接从sqlalchemy.orm 导入的relationship()。相反,我需要使用 db.relationship() 来获得由 Flask-SQLAlchemy 包装的 the version of the method。

【讨论】:

    猜你喜欢
    • 2015-10-14
    • 2016-06-15
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多