微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Django 使用 key=value 选项修改对象

我正在对 Django 环境中的对象的传入数据修改请求(来自 DataTables 表)进行 http POST 处理。 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(**{attribute: value})

这将阻止先通过查询获取对象,然后再更新它。

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

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

item = Stuff.objects.get(id=id)
setattr(item,attribute,value)
item.save()
,

尝试使用像这样的 if 语句

If attribute = 'title'
    item.title = value
    item.save()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。