Sep 122009
 

Oui, je sais, mon titre de billet n’est pas des plus fin.. Tans pis, c’est la faute au surmenage.

J’avais déjà parlé des objets Q dans un précédent billet. Pour mémoire les objets Q sont des objets django qui permettent de faire de filtrer des requêtes BD d’une façon plus poussée qu’en simplement chainant des appels à filter.

L’algèbre des Q

Les opérateurs ET (&) et OU ( | ) fonctionne sur les objects Q. On peut les chainer, en faire des expressions complexes en parenthésant sans aucun problème.

L’algèbre des queryset

Les queryset sont des objets itérable qui sont renvoyés, par, entre autre, la fonction filter et qui stockent le résultat d’une requête BD. On s’en sert aussi pour remplir les différents composants ‘à choix’ d’un formulaire (selectlist,etc… ).

On ne peut pas concaténer deux queryset comme on pourrait le faire avec deux listes avec par exemple L1 + L2. Mais les queryset supporte les opérations logique. On peut donc là aussi faire des OU (ce qui revient à les concaténer) et des ET pour trouver l’intersection entre deux queryset.

Et c’est, plus que bien utile.


Flattr this!

  2 Responses to “L’algèbre du Q (et du queryset)”

  1. Ah ben bravo pour le titre !!!
    C’est dommage, tu pourrais presque faire agreger ton blogs aux flux rss officiel de Django…
    Ca contrebalancerai toutes les pages en russes…

    • faudrait que j’y pense un jour :). mais bon en français .. je sais pas si ils accepteraient

      et sinon, mon titre est très bien. 🙂

Sorry, the comment form is closed at this time.