我在 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)
