0

I'd like to shorten the following code from

if field == 'favorite_food':
    model_instance.update(favorite_food=value)
elif field == 'favorite_drink':
    model_instance.update(favorite_drink=value)
elif field == 'favorite_color':
    model_instance.update(favorite_color=value)

to something like:

if field in list:    
    model_instance.update(field=value)

So I'm just wondering if it's possible.

crentagon
  • 43
  • 6

2 Answers2

2

You can just unpack into keyword arguments:

model_instance.update(**{field: value})

There is also an option to set the model field value and then save (there are though differences):

setattr(model_instance, field, value)
model_instance.save()
alecxe
  • 462,703
  • 120
  • 1,088
  • 1,195
0

You can do this

fields = ["favorite_food", "favorite_drink", "favorite_color"]
field = "favorite_food"
if field in fields:    
    model_instance.update(field=value)
Manoj Jadhav
  • 1,270
  • 1
  • 15
  • 23