Django在pop()上请求QueryDict错误

时间:2011-10-27 22:46:12

标签: python django django-views

看着dir(request.GET),我注意到pop被列为一种方法。我也相信我过去已经从请求中删除了属性。

这是准确的吗?如果是这样,为什么会失败?

request.GET.pop('key')

2 个答案:

答案 0 :(得分:12)

request.GETrequest.POST是不可变的QueryDict个实例。这意味着您无法直接更改其属性。

复制QueryDict,返回可变QueryDict。然后,您可以调用副本的pop方法,而不会引发错误。

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

答案 1 :(得分:0)

由于pop是一成不变的字典,我建议改用request.GET.get('key', <your default value>)