Django-fr

Forum

#1 17-02-2011 16:53:51

Tonton
Membre
Inscription : 20-09-2010
Messages : 75

list pouvant etre null

Bonjour

je voudrai faire une requete pouvant etre null en retour

listreponse = get_list_or_404(Table, attribut=valeur)

if (listreponse != None) :
    faitce qui faut
else:
    renvoi y a pas de réponse

ça semble tout simple mais il semblerait qu'une requete doit avoir un retour
sinon django braille s.m.

j'ai essayé
listreponse = Table.object.get( attribut=valeur)
mais là deux reponses ne semble pas lui plaire

si quelqu'un pouvait me soufler la synthaxe cela m'aiderait je crois !

tonton

Hors ligne

#2 17-02-2011 17:12:18

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

Re : list pouvant etre null

Le 17/02/11 16:53, Tonton a écrit :
> Bonjour

Bonjour,

> je voudrai faire une requete pouvant etre null en retour
>
> listreponse = get_list_or_404(Table, attribut=valeur)

Ca c'est ok smile

> if (listreponse != None) :
>      faitce qui faut
> else:
>      renvoi y a pas de réponse

get_list_or_404 est un raccourcit permettant de retourner directement
une erreur HTTP 404 si aucun enregistrement ne correspond à la requête.

Il suffit donc de faire quelque chose comme:

listreponse = get_list_or_404(Table, attribut=valeur)

for item in listreponse:
     [...]

Hors ligne

#3 17-02-2011 17:45:40

Tonton
Membre
Inscription : 20-09-2010
Messages : 75

Re : list pouvant etre null

Pfff c'est dans al docs :op

listreponse = Table.objects.filter(attribut=valeur)

et apres
if !=none
    for t in listreponse

cool !
tonton

2011/2/17 Tonton <to.tonton _AT_ gmail.com>

> --
> Jonathan Leroy.
> get_list_or_404 est un raccourcit permettant de retourner directement une
> erreur HTTP 404 si aucun enregistrement ne correspond à la requête.
>
>> Il suffit donc de faire quelque chose comme:
>>
>> listreponse = get_list_or_404(Table, attribut=valeur)
>>
>> for item in listreponse:
>>    [...]
>>
>>
>
>> neutral
>> sauf que je ne souhaite pas une page 404 si la requete ne retourne rien
>> mais
>>
> utiliser le fait que la réponse soit vide !
>
>

Hors ligne

#4 17-02-2011 17:52:12

David Thenon
Membre
Inscription : 11-08-2010
Messages : 156
Site Web

Re : list pouvant etre null

Salut,

Quand tu fais une requête pour séléctionner plusieurs objets, si la requêt ne
renvoie aucun résultat, ça te renvoi un QuerySet vide qui est assimilable à
une liste vide donc un simple len(machin) te permet de savoir si t'a requête
aboutie à des résultats :

listreponse = get_list_or_404(Table, attribut=valeur)
if len(listreponse) > 0:
    faitce qui faut
else:
   renvoi y a pas de réponse

> j'ai essayé
> listreponse = Table.object.get( attribut=valeur)

"Model.objects.get(...)" sert à récupérer uniquement un objet, si il en trouve
plusieurs correspondant à tes motifs de requête, il remonte une exception
spécifique et s'il ne retrouve pas d'objet du tout, il remonte une exception du
type "Model.DoesNotExist".

Le jeudi 17 février 2011 16:53:51, Tonton a écrit :
> Bonjour
>
> je voudrai faire une requete pouvant etre null en retour
>
> listreponse = get_list_or_404(Table, attribut=valeur)
>
> if (listreponse != None) :
>     faitce qui faut
> else:
>     renvoi y a pas de réponse
>
> ça semble tout simple mais il semblerait qu'une requete doit avoir un
> retour sinon django braille s.m.
>
> j'ai essayé
> listreponse = Table.object.get( attribut=valeur)
> mais là deux reponses ne semble pas lui plaire
>
> si quelqu'un pouvait me soufler la synthaxe cela m'aiderait je crois !
>
> tonton

Hors ligne

#5 17-02-2011 17:54:47

Tonton
Membre
Inscription : 20-09-2010
Messages : 75

Re : list pouvant etre null

oui ou
if (listreponse.count() != o )
else

merci

2011/2/17 David THENON <david.thenon _AT_ wanadoo.fr>

> Salut,
>
> Quand tu fais une requête pour séléctionner plusieurs objets, si la requêt
> ne
> renvoie aucun résultat, ça te renvoi un QuerySet vide qui est assimilable à
> une liste vide donc un simple len(machin) te permet de savoir si t'a
> requête
> aboutie à des résultats :
>
> listreponse = get_list_or_404(Table, attribut=valeur)
> if len(listreponse) > 0:
>     faitce qui faut
> else:
>   renvoi y a pas de réponse
>
> > j'ai essayé
> > listreponse = Table.object.get( attribut=valeur)
>
> "Model.objects.get(...)" sert à récupérer uniquement un objet, si il en
> trouve
> plusieurs correspondant à tes motifs de requête, il remonte une exception
> spécifique et s'il ne retrouve pas d'objet du tout, il remonte une
> exception du
> type "Model.DoesNotExist".
>
> Le jeudi 17 février 2011 16:53:51, Tonton a écrit :
> > Bonjour
> >
> > je voudrai faire une requete pouvant etre null en retour
> >
> > listreponse = get_list_or_404(Table, attribut=valeur)
> >
> > if (listreponse != None) :
> >     faitce qui faut
> > else:
> >     renvoi y a pas de réponse
> >
> > ça semble tout simple mais il semblerait qu'une requete doit avoir un
> > retour sinon django braille s.m.
> >
> > j'ai essayé
> > listreponse = Table.object.get( attribut=valeur)
> > mais là deux reponses ne semble pas lui plaire
> >
> > si quelqu'un pouvait me soufler la synthaxe cela m'aiderait je crois !
> >
> > tonton
>
> --
> Cordialement,
> David THENON.
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#6 17-02-2011 17:58:55

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

Re : list pouvant etre null

Le 17/02/11 17:54, Tonton a écrit :
> oui ou
> if (listreponse.count() != o )
> else

En python un simple "if not" suffit à tester si la valeur d'une variable
est nulle ( == '', None, 0...)

if not listreponse:
     ...

else:
     ...

Hors ligne

#7 17-02-2011 18:24:32

David Thenon
Membre
Inscription : 11-08-2010
Messages : 156
Site Web

Re : list pouvant etre null

Oui par contre ajouter ".count()" à ton queryset initial te fait faire une
requête supplémentaire (du moins si tu comptes traiter le queryset après) pour
utiliser un count SQL.

Mais c'est effectivement plus léger coté SQL que d'exécuter le queryset initial
pour évaluer le nombre de ses éléments.

Le jeudi 17 février 2011 17:54:47, Tonton a écrit :
> oui ou
> if (listreponse.count() != o )
> else
>
> merci
>
> 2011/2/17 David THENON <david.thenon _AT_ wanadoo.fr>
>
> > Salut,
> >
> > Quand tu fais une requête pour séléctionner plusieurs objets, si la
> > requêt ne
> > renvoie aucun résultat, ça te renvoi un QuerySet vide qui est assimilable
> > à une liste vide donc un simple len(machin) te permet de savoir si t'a
> > requête
> > aboutie à des résultats :
> >
> > listreponse = get_list_or_404(Table, attribut=valeur)
> >
> > if len(listreponse) > 0:
> >     faitce qui faut
> >
> > else:
> >   renvoi y a pas de réponse
> >   
> > > j'ai essayé
> > > listreponse = Table.object.get( attribut=valeur)
> >
> > "Model.objects.get(...)" sert à récupérer uniquement un objet, si il en
> > trouve
> > plusieurs correspondant à tes motifs de requête, il remonte une exception
> > spécifique et s'il ne retrouve pas d'objet du tout, il remonte une
> > exception du
> > type "Model.DoesNotExist".
> >
> > Le jeudi 17 février 2011 16:53:51, Tonton a écrit :
> > > Bonjour
> > >
> > > je voudrai faire une requete pouvant etre null en retour
> > >
> > > listreponse = get_list_or_404(Table, attribut=valeur)
> > >
> > > if (listreponse != None) :
> > >     faitce qui faut
> > >
> > > else:
> > >     renvoi y a pas de réponse
> > >
> > > ça semble tout simple mais il semblerait qu'une requete doit avoir un
> > > retour sinon django braille s.m.
> > >
> > > j'ai essayé
> > > listreponse = Table.object.get( attribut=valeur)
> > > mais là deux reponses ne semble pas lui plaire
> > >
> > > si quelqu'un pouvait me soufler la synthaxe cela m'aiderait je crois !
> > >
> > > tonton
> >
> > --
> > Cordialement,
> > David THENON.
> > _______________________________________________
> > django mailing list
> > django _AT_ lists.afpy.org
> > http://lists.afpy.org/mailman/listinfo/django

Hors ligne

Pied de page des forums