Skip to main content
 首页 » 编程设计

python之在 Django 中删除对象后将数据保存在变量中

2025年02月15日47落叶无声

我在 Django 1.9

我想在删除具有这些 ID 的对象后保留一个 ID 列表(将被发送回 Ajax 函数)。

但是因为我删除了这些对象,列表也被清空了。

这是我的代码:

relatedsteps = Step.objects.filter(theplace=theplaceclicked) 
listofrelatedstepsid = relatedsteps.values('id') 
response_data = {} 
response_data['listofrelatedstepsid'] = listofrelatedstepsid 
print(response_data['listofrelatedstepsid']) 
relatedsteps.delete() 
print(response_data['listofrelatedstepsid']) 

第一个

print(response_data['listofrelatedstepsid']) 

返回

[{u'id': 589}] 

但是第二个返回:

[] 

有什么线索吗?非常感谢

请您参考如下方法:

QuerySet.values 实际上不返回列表,它返回查询集的克隆。每次您对其进行迭代(例如 print 所做的)它都会命中数据库,因此第二次打印会在 delete 之后重新执行查询。

你应该做的是:

response_data['listofrelatedstepsid'] = list(listofrelatedstepsid)