比方说,我有一个User与领域模型popularity和date_created 。 我想做以下查询: 在 SQLAlchemy 中,对于单个这样的工作: 我应该添加另一个order_by()吗? 或者在我当前的order_by() popularity和date_created ? 我希 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
数据库 Model:
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)"
)
Api 端点与 Flask-Restful:
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)
或将关系称为 model 中的 function?
@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
是否可以以某种方式在 model 中进行设置,还是我需要在端点中使用查询? 还是我只需要在从数据库中提取记录后进行排序?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.