Django-fr

Forum

  • Accueil
  • » Django-fr
  • » Comment sélectionner tous les enregistrements d'une table - 2 ?

#1 05-01-2011 18:38:53

beegees
Membre
Inscription : 26-12-2010
Messages : 66

Comment sélectionner tous les enregistrements d'une table - 2 ?

Bonjour tout le monde,

J'aimerais effacer tous les enregistrements d'une de mes tables (Clients) à l'exception de deux enregistrements.

J'aimerais en fait garder les enregistrements dont le num_client est égal à 123 et le client dont le num_client est égal à 456.

Je vais utiliser la méthode delete() du manager mais c'est la sélection avec laquelle j'ai un peu de mal.

Merci d'avance pour l'aide.

beegees

Hors ligne

#2 05-01-2011 18:46:01

Jonathan Leroy - Inikup
Membre
Lieu : Nîmes, france
Inscription : 11-08-2010
Messages : 27
Site Web

Re : Comment sélectionner tous les enregistrements d'une table - 2 ?

Le 05/01/11 18:38, beegees a écrit :
> Bonjour tout le monde,

Salut,

> J'aimerais effacer tous les enregistrements d'une de mes tables (Clients)
> à l'exception de deux enregistrements.
>
> J'aimerais en fait garder les enregistrements dont le num_client est égal
> à 123 et le client dont le num_client est égal à 456.
>
> Je vais utiliser la méthode delete() du manager mais c'est la sélection
> avec laquelle j'ai un peu de mal.

Il te suffit d'utiliser exclude(), qui est l'équivalent de filter() pour
l'exclusion d'enregistrements. Ce qui donne:

Clients.objects.exclude(num_client__in=[123, 456]).delete()

Cordialement,

Hors ligne

#3 05-01-2011 18:46:50

Jean Boussier
Membre
Inscription : 11-09-2010
Messages : 13

Re : Comment sélectionner tous les enregistrements d'une table - 2 ?

http://docs.djangoproject.com/en/1.2/ref/models/querysets/#exclude

Model.objects.exclude(pk=1).exclude(pk=2).delete()

Hors ligne

#4 05-01-2011 18:54:25

beegees
Membre
Inscription : 26-12-2010
Messages : 66

Re : Comment sélectionner tous les enregistrements d'une table - 2 ?

Jonathan Leroy a écrit :

Le 05/01/11 18:38, beegees a écrit :
> Bonjour tout le monde,

Salut,

> J'aimerais effacer tous les enregistrements d'une de mes tables (Clients)
> à l'exception de deux enregistrements.
>
> J'aimerais en fait garder les enregistrements dont le num_client est égal
> à 123 et le client dont le num_client est égal à 456.
>
> Je vais utiliser la méthode delete() du manager mais c'est la sélection
> avec laquelle j'ai un peu de mal.

Il te suffit d'utiliser exclude(), qui est l'équivalent de filter() pour
l'exclusion d'enregistrements. Ce qui donne:

Clients.objects.exclude(num_client__in=[123, 456]).delete()

Cordialement,

Salut,

Merci pour ta réponse.

ça a fonctionné parfaitement.

beegees

Hors ligne

#5 05-01-2011 18:54:50

beegees
Membre
Inscription : 26-12-2010
Messages : 66

Re : Comment sélectionner tous les enregistrements d'une table - 2 ?

Jean Boussier a écrit :

http://docs.djangoproject.com/en/1.2/re … s/#exclude

Model.objects.exclude(pk=1).exclude(pk=2).delete()

Merci Jean,

Cette syntaxe me semble un peu plus compliquée.

beegees

Hors ligne

  • Accueil
  • » Django-fr
  • » Comment sélectionner tous les enregistrements d'une table - 2 ?

Pied de page des forums