Можно ли в Django использовать переменную, переданную в функцию, для доступа к атрибуту модели?

Я пытаюсь создать пользовательскую функцию, в которой одной из передаваемых переменных является имя атрибута модели.  Я делаю это, чтобы попытаться получить доступ к базовому значению. 

    def tabsums(entity_object, year_object, columntitle):
        curassetobject = BSAccountType.objects.get(name = "Current asset", company = entity_object)
        curassetsum = BSSum.objects.get(Q(company = entity_object) & Q(year = year_object) & Q(account_type = curassetobject)).columntitle

По сути, я хочу, чтобы columntitle был строкой, соответствующей имени поля модели, поэтому я пытаюсь передать переменную в качестве имени атрибута для доступа к базовому значению.  Это не работает, так как Django/python ищет атрибут "columntitle", которого не существует, вместо того, чтобы обратиться к базовой строке.

Есть ли синтаксис, который я могу использовать, который позволит Django использовать базовое строковое значение, которое передается?

Большое спасибо.

Я не тестировал это, но Django - это, по сути, просто python, поэтому вы должны быть в состоянии использовать функцию getattr() для того, чтобы сделать то, что вы хотите. Что-то вроде этого:

def tabsums(entity_object, year_object, columntitle):
    curassetobject = BSAccountType.objects.get(name = "Current asset", company = entity_object)
    curassetsum = getattr(BSSum.objects.get(Q(company = entity_object) & Q(year = year_object) & Q(account_type = curassetobject)), columntitle)
Вернуться на верх