看着dir(request.GET),我注意到pop被列为一种方法。我也相信我过去已经从请求中删除了属性。
这是准确的吗?如果是这样,为什么会失败?request.GET.pop('key')
答案 0 :(得分:12)
request.GET
和request.POST
是不可变的QueryDict
个实例。这意味着您无法直接更改其属性。
复制QueryDict
,返回可变QueryDict
。然后,您可以调用副本的pop方法,而不会引发错误。
request.GET
GET = request.GET.copy()
GET.pop('key')
答案 1 :(得分:0)
由于pop
是一成不变的字典,我建议改用request.GET.get('key', <your default value>)
。