Django请求QueryDict的pop()错误

9 投票
1 回答
8138 浏览
提问于 2025-04-17 05:08

我查看了request.GET的内容,发现里面有一个叫pop的方法。我记得之前也用过这个方法来从request中取出一些属性。

这样说对吗?如果是的话,为什么会失败呢?

request.GET.pop('key')

1 个回答

21

request.GETrequest.POST 是不可变的 QueryDict 实例。这意味着你不能直接修改它们的属性。

如果你复制一个 QueryDict,那么返回的就是一个可变的 QueryDict。这样你就可以在这个复制的对象上使用 pop 方法,而不会出现错误。

request.GET
GET = request.GET.copy()
GET.pop('key')    

撰写回答