在for循环中追加项目

时间:2011-10-12 05:21:08

标签: python django

mysql db table XXX

id | a  |
---------
1  | 111|
2  | 222|
3  | 333|

我从mysql数据库得到了查询结果。

info = XXX.objects.filter(a = 111)
for item in info:
    item.update({b:111})

出错“XXX没有属性'更新' 我想在项目中添加更多键:值集。 我该怎么办?

3 个答案:

答案 0 :(得分:4)

如果您的表格有字段b

XXX.objects.filter(a = 111).update(b=111)

info = XXX.objects.filter(a = 111)
for item in info:
    item.b = 111
    item.save()

答案 1 :(得分:2)

item不是mapping。如果要在对象上设置属性,请执行此操作。

item.b = 111

请注意,Django不会保留更改,除非它已经是模型中的字段,并且您确保保存item

答案 2 :(得分:0)

在Django过滤器中返回QuerySet不是字典的列表所以@Danfi的​​方法是对的

info = XXX.objects.filter(a = 111) #return the list of QuerySet (objects)
for item in info:
    item.b = 111   # Object
    item.save()