Изменение значений атрибутов объекта модели django с помощью переменной [дубликат]

У меня есть эта модель :

class Project(models.Model):
    name = models.CharField(max_length=200, verbose_name="project name", default="")
    price = models.FloatField(verbose_name="Price", default=0)
    description = models.TextField(verbose_name="Description du projet", blank=True, null=True)
    state = models.CharField(max_length=7, choices=STATES, verbose_name="Statut", default='not started')
    ...a lot of other fields...

Если у меня есть этот объект :

name : "test_project"
price : 200
description : "this is a project"
state : "not started"

Я могу изменить любое значение следующим образом :

project.name = "new project"
project.price = 300
project.description = "new description"
project.state = "new state"
project.save()

Но я хочу знать, можно ли получить доступ к значениям атрибутов, заменив имена полей переменной (перебирая все поля)

Это может выглядеть примерно так:

new_values = ["new_name", 300, "new description", "new state"]
fields = ["name", "price", "descrition", "state"]

for i in range(len(new_values)):
    project.{fields[i]} = new_values[i]
project.save()

И знаем, что объект выглядит следующим образом :

name : "new_name"
price : 300
description : "new description"
state : "new state"

Кто-нибудь знает, есть ли способ сделать это? Спасибо

Вернуться на верх