79 votes

Accéder aux champs du modèle Django à l&#39 utilité à l’aide d’une chaîne au lieu d’une syntaxe de points ?

Dans Django, je peux faire ceci:

Je veux pouvoir accéder aux propriétés à l’aide de chaînes générées dynamiquement, comme ceci :

ou toute autre syntaxe utilisant une chaîne. J'ai essayé

mais cela renvoie le champ lui-même et non la valeur.

Des idées ?

122voto

Caspar Points 1898

Vous pouvez utiliser la fonction intégrée de python `` :

15voto

arie Points 8860

Supposer que name est un attribut sur votre test d’instance doit renvoyer la valeur correspondante. Ou .

Vous pouvez en savoir plus `` ici: http://effbot.org/zone/python-getattr.htm

12voto

davidhwang Points 1073

D’autres réponses sont toujours d’actualité, mais vous pouvez maintenant le faire en utilisant _meta.get_field() de Django.

Notez que l’API Model _meta a commencé son support officiel et sa documentation à partir de la version 1.8, mais a été distribuée et utilisée dans les versions précédentes avant sa documentation officielle.

6voto

James R Points 2247

En Python, vous pouvez normalement accéder aux valeurs d’un objet pouvant avoir une méthode dict.

Disons que vous avez cette classe:

Et puis je l’instancie :

Je peux donc voir la couleur en faisant:

Je peux aussi voir la couleur en faisant :

Je peux définir la couleur:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X