Accès par son nom à la Valeur d'un champ d'une instance de model
---
Bonjour,

Soit les deux classes Pays et Region:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Pays(models.Model):
  nom = models.CharField()
  code = models.CharField()
    class Meta:
        db_table = 'pays'
    def __unicode__(self):  # Python 3: def __str__(self):
        return self.nom
 
class Region(models.Model):
  nom = models.CharField()
  code = models.CharField()
  pays = models.ForeignKey(Pays) 
    class Meta:
        db_table = 'region'
    def __unicode__(self):  # Python 3: def __str__(self):
        return self.nom
Existe-t-il un moyen d'accéder au champ region.pays.code en utilisant une syntaxe du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
code = r.get('pays').get('code')
ou
code = r.get('pays.code')
autrement dit sans nommer les propriétés pays et code ?

Voici ce qu'on peut déjà faire mais ça ne suffit pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
p = Pays.objects.get(code='FR')
p.nom => 'FRANCE'
p.__dict__['nom'] => 'FRANCE'
 
r = Region.objects.get(code='IDF')
r.nom => 'ILE DE FRANCE'
r.pays => <Pays: FRANCE>
r.pays.code => 'FR'
r.__dict__['nom'] => 'ILE DE FRANCE'

Merci