Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django: how to get field by field name from Model instance dynamically?

Tags:

django

I have a model instance and a variable that contains name of the field that I have to print:

field_name = "is_staff"
user = User.objects.get(pk=0)

How do I get the value of that field by field_name? I can't just say user.is_staff, cause I can't hard-code that the field is called is_staff.

Importantly, I need to assign a value to the field, obtained this way: user.is_staff = True.

like image 607
Boris Burkov Avatar asked May 11 '16 16:05

Boris Burkov


1 Answers

Use can use `getattr'. It works like this

field_name = "is_staff"
user = User.objects.get(pk=0)
field_name_val = getattr(user, field_name)
like image 141
Muhammad Hassan Avatar answered Nov 18 '22 06:11

Muhammad Hassan