Django 使用 key=value 选项修改对象

Django modify objects using key=value options

我正在为我的 Django 环境中的对象做 http POST 处理传入的数据修改请求(来自 DataTables table)。 POST 数据以键=值对的形式出现。

我 运行 遇到的问题是我还没有找到一种方法将它变成我可以使用的东西。 Django对象和修改是这样完成的:

id = 123
item = Stuff.objects.get(id=id)
item.title = "New Title"
item.save()

我有以下数据属性:

id = 123
attribute = "title" 
value = "New Title"

如何使用它们修改 Django 对象?

更有效的方法是:

id = 123
attribute = 'title'
value = 'New Title'
Stuff.objects.filter(id=id).update(<b>**{attribute: value}</b>)

这将防止首先使用查询获取对象,然后更新它。

如果无论如何都需要加载对象,可以使用 setattr(…) [Python-doc]:

id = 123
attribute = 'title'
value = 'New Title'

item = Stuff.objects.get(id=id)
<b>setattr(</b>item, attribute, value<b>)</b>
item.save()

尝试使用像

这样的 if 语句
If attribute = 'title'
    item.title = value
    item.save()