2014-01-20 3 views
1

Мне было интересно, можно ли получить поле в djangomodel из строки. Letme дать вам пример:django acces model field by string

класс:

class Resource(models.Model): 
    town = models.ForeignKey(Town, unique=True) 

    coin = models.IntegerField() 
    wood = models.IntegerField() 
    iron = models.IntegerField() 
    grain = models.IntegerField() 
    stone = models.IntegerField() 

Сейчас где-то в другом коде, я хотел бы Acces поле как этот

example="coin" 
resources = Resource.objects.get(town="some town"): 
resources.example 

Я знаю, что resources.example не работает , мне было интересно, есть ли способ достичь этого?

С наилучшими пожеланиями, Ханс де Йонг

ответ

5

Вы можете получить доступ к атрибуту любого объекта в питон по имени, используя встроенную функцию getattr

example="coin" 
resources = Resource.objects.get(town="some town"): 
getattr(resources, example)