繁体   English   中英

如何获得sqlalchemy关系来更新order_by?

How can I get a sqlalchemy relationship to update the order_by?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

数据库模型:

class Facility(db.Model):
    __tablename__ = "facility"
    id                  = db.Column(db.Integer, primary_key=True)
    name                = db.Column(db.String(80), nullable=False)    
    created_at          = db.Column(db.DateTime, default=datetime.now())
    updated_at          = db.Column(db.DateTime, nullable=True)

    contacts = relationship(
        "Contact",
        secondary="facility_contact",
        order_by="desc(Contact.created_at)"
    )

带有Flask-Restful的Api端点:

class FacilityPersonnelEndpoint(Resource):
    def __init__(self):
        self.parser = reqparse.RequestParser()
        self.parser.add_argument("facility_id", type=str)
        self.parser.add_argument("order_by", type=str)
        self.parser.add_argument("group_by", type=str)
        super(FacilityPersonnelEndpoint, self).__init__()

    def get(self) -> dict:
        args = self.parser.parse_args()

        facility = Facility.get_id(args["facility_id"])
        if not facility:
            return { "error": "Facility Personnel not found." }, 404

        return facility.contacts, 200

我希望能够在端点中执行以下伪代码之类的操作,但似乎找不到任何文档来实现此目的。

order = args["order_by"]
group = args["group_by"]
sort = "{0}(Contact.{1})".format(order_by, group_by)
Facility.contacts.order_by(sort)

或将关系作为模型中的函数调用?

@classmethod
def get_ordered_contacts(cls, order_by, group_by):
    sort = "{0}(Contact.{1})".format(order_by, group_by)
    contacts = relationship(
        "Contact",
        secondary="facility_contact",
        order_by=sort
    )
    return contacts

是否可以通过某种方式在模型中进行设置,还是需要在端点中使用查询? 还是从数据库中提取记录后只需要排序?

问题暂未有回复.您可以查看右边的相关问题.
2 Flask SQLAlchemy order_by关系

我正在使用Flask应用程序,我有一个LargeGroupAttendance模型,它引用了另一个名为Attendee的模型。 我正在尝试请求所有符合特定条件的LargeGroupAttendance对象,但我试图通过参加者模型的列对它们进行排序 - 这是否可能? 以下是两种型号: ...

5 对SQLAlchemy关系order_by使用嵌套值

鉴于这些关系: 我怎么能指定的顺序.children关系的订购B.type.order ? 给我: AttributeError:与B.type关联的'InstrumentedAttribute'对象和'Comparator'对象B.type具有属性'order' ...

6 SQLAlchemy-连接表上的关系的order_by

我正在使用声明式SQLAlchemy,并且有三个模型: Role , Permission和RolePermission 。 在我的Role模型,我有以下几点: 现在, permissions声明可以正常工作,并且与角色关联的权限按照我的期望(按名称)排序。 但是, permissi ...

9 SQLAlchemy:在查询中覆盖关系定义的“order_by”

所以,我有一个类似的模型: 所以,问题出在那里的first_item方法上:当它如上定义时,SQL 如下所示: 显然,查询中指定的order_by是附加到关系定义中指定的,而不是替换它; 有没有办法让查询覆盖原始order_by ? 我知道我可以直接在FooData类上指定一个单独的查询,但 ...

10 SQLAlchemy order_by通过关联代理的多对多关系

我在SQLAlchemy的Flask应用程序中使用关联对象设置了多对多的关系。 然后,我在类之间设置了关联代理,以提供更直接的访问,而不是通过关联对象。 以下是设置的缩写示例: 我不能为我的生活弄清楚如何让group.members返回的成员按其last_name排序? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM