Récupérer le contenu d'une variable en python et l'utiliser

Bonjour,

Je débute dans le développement avec Python et
django
et je butte sur un problème.

Je voudrais récupérer le contenu d'un variable et l'utiliser, mais disons sans faire référence à la variable. Je sais que ça parait un peu superflu je vais illustrer

En somme, j'ai une variable :
maVar = etat


et je voudrais utiliser son contenu, donc état ici ==>
demandes = Demande.objects.filter(etat = none)


Puisque si j'utilise
maVar
, cela créera une erreur vu que
maVar
n'est pas une propriété de
Demande
.

je voulais utiliser
.getattr()
mais il prend en paramètre deux valeurs.

Que faire?

Merci beaucoup de m'aider :-)

1 réponse

  1. Modérateur
    Bonjour,

    Je pas compris ta question. Dans ton exemple la variable
    demandes
    .

    Voyons si tu as bien compris ce que signifie
    demandes = Demande.objects.filter(etat = None) 
    . Ici tu as un classe
    Demande
    qui possède un attribut statique (
    .objects
    ). Cet attribut est d'un certain type, et ce type possède une méthode
    filter
    . Ici tel que tu l'as écrit, cette méthode ne possède aucun paramètre obligatoire, et un paramètre optionnel nomm" "etat" que tu as spécifié comme étant égal à
    None
    (avec un N majuscule, en python).

    Le nom
    etat
    coïncide soit avec le nom d'un des paramètres déclarés dans la méthode
    filter()
    , soit cette méthode utilise des listes de paramètres abstraites (voir en python
    *args
    et
    **kwargs
    ). Si on regarde dans la documentation django, on est apparamment dans ce second cas.

    J'en déduis donc que dans ton code
    Demande.objects
    correspond à un
    QuerySet
    qui contient une série d'objets python qui possèdent un attribut
    etat
    par exemple :

    class MonType:
      def __init__(self):
        self.etat = 7
    
    x = MonType()
    print(x.etat) # Affiche 7
    print(getattr(x, "etat")) # Affiche 7 aussi


    Donc première question, est-ce bien le cas ? Une manière de voir serait de regarder le type des objets que tu as dans ton
    QuerySet
    et t'assurer que ce type possède bien un attribut appelé
    etat
    .

    Ensuite