Skip to content

Fonctionnement de la fonction set_limit() de GenericQuery #55

@jbrieuclp

Description

@jbrieuclp

Salut,
Je m'arrache les cheveux depuis un moment à comprendre ce qui ne fonctionnait pas sur le requêtage des données depuis l'API du module Export où lorsque je voulais accéder aux données via une route de l'API je fixais ma limite (1000 au max) et mon offset.
A chaque itération je multipliais mon offset dans l'URL comme je l'aurais fait en SQL :

  • requête 1 : LIMIT 1000 - OFFSET 0
  • requête 2 : LIMIT 1000 - OFFSET 1000
  • requête 3 : LIMIT 1000 - OFFSET 2000
  • ...

J'obtenais des retours incompréhensibles.
Jusqu'à ce que j'aille voir dans le code pour comprendre la raison et tomber sur cette fonction ;

def set_limit(self, q):
return q.limit(self.limit).offset(self.offset * self.limit)

Ainsi offset n'est pas à considérer comme la valeur de OFFSET qui sera réellement envoyée à la requête, mais comme une pagination.
Plutôt trompeur comme fonctionnement.. En tout cas, je suis clairement tombé dans le panneau !
De fait pourquoi cette multiplication par le LIMIT et, ma foi, pourquoi pas, mais dans ce cas est-ce que "OFFSET" est le bon nom de paramètre ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions