Как изменить поле модели Django в функции

Рейтинг: 0Ответов: 1Опубликовано: 09.03.2023

Допустим есть модель

class Person(model.Model):
    first_name = ...
    last_name = ...

Нужно написать функцию, которая будет изменять значение поля. Что-то типа того:

def change_data(user, field, new_value):
    user.field = new_value


my_user = Person(first_name=Alex, last_name=Cooper)
change_data(my_user, 'first_name', 'Bobby')

Как в функции change_data обратиться к полю, если имя поля приходит стракой? Спасибо!

Ответы

▲ 0

Разобрался. Нужно было написать метод модели:

def update_field(self, field, new_value):
    self.__setattr__(field, new_value)