Запросы в Django orm с левой изменяемой частью не являются определенными

Я хочу сделать такой запрос:

Student.objects.filter(id= id).update(name=value)       

А значение исходит от пользователя.

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

Student.objects.filter(id= id).update(address=value)        
Student.objects.filter(id= id).update(phone_number=value)       

Я хочу иметь только одну строку кода, например:

Student.objects.filter(id= id).update(XXX=XXX_value)        

Так что мне интересно, могу ли я присвоить любую переменную левой изменяемой переменной внутри функции update или нет.

Извините, левый ключ не является определенным значением. Оно зависит от сообщения пользователя. В следующий раз это может быть адрес или просто имя. Это не фиксированное значение.

Спасибо.

Согласно обновлению документации

Вы можете обновлять несколько полей - нет ограничений по их количеству

Так что следующее должно получиться

Student.objects.filter(id=id).update(address=address_value, phone_number=phone_number_value)        

Вы можете динамически определить поля, предоставив их в словаре и используя ** для распаковки словаря в аргументы для update().

fields_to_update = {
    "address": address_value,
    "phone_number": phonenumber_value,
}
Students.objects.filter(id=update_id).update(**fields_to_update)
Вернуться на верх