Parcourir la source

add secondary sort_key when using `order_by` and `paginate` at the same time (#7225)

tags/0.7.0
feng0 il y a 1 an
Parent
révision
2fe2e350ce
Aucun compte lié à l'adresse e-mail de l'auteur
1 fichiers modifiés avec 12 ajouts et 3 suppressions
  1. 12
    3
      api/controllers/console/datasets/datasets_document.py

+ 12
- 3
api/controllers/console/datasets/datasets_document.py Voir le fichier

@@ -178,11 +178,20 @@ class DatasetDocumentListApi(Resource):
.subquery()

query = query.outerjoin(sub_query, sub_query.c.document_id == Document.id) \
.order_by(sort_logic(db.func.coalesce(sub_query.c.total_hit_count, 0)))
.order_by(
sort_logic(db.func.coalesce(sub_query.c.total_hit_count, 0)),
sort_logic(Document.position),
)
elif sort == 'created_at':
query = query.order_by(sort_logic(Document.created_at))
query = query.order_by(
sort_logic(Document.created_at),
sort_logic(Document.position),
)
else:
query = query.order_by(desc(Document.created_at))
query = query.order_by(
desc(Document.created_at),
desc(Document.position),
)

paginated_documents = query.paginate(
page=page, per_page=limit, max_per_page=100, error_out=False)

Chargement…
Annuler
Enregistrer