[Answered ]-How do I query for a variable attribute of a django model?

2👍

Reduce is your friend:

#we take a model:
m=Material.objects.all()[0]

#now I navigate to some attr:
m.uf.mp.nom

#we get:
u'Programació multimèdia i dispositius mòbils'

#I write attr path as string:
str="uf__mp__nom"

#I invoke reduce to get attr value through path: 
reduce( getattr, [ m ] + str.split("__" ) )

#we get same result, txan txan!!
u'Programació multimèdia i dispositius mòbils'

Another example:

>>> m.uf.mp.cicle.nom
u'Desenvolupament d aplicacions multiplataforma'
>>> 
>>> str="uf__mp__cicle__nom"
>>> 
>>> reduce( getattr, [ m ] + str.split("__" ) )
u'Desenvolupament d aplicacions multiplataforma'

write your own function to encapsulate it.

Leave a comment