Djangoがpop()のQueryDictエラーを要求する

dir(request.GET)を見ると、popがメソッドとしてリストされていることがわかります。私は過去の要求から属性を取り除いたとも信じています。

それは正確ですか?もしそうなら、なぜこれは失敗するでしょうか?

request.GET.pop('key')
4

2 答え

request.GET and request.POST are immutable QueryDict instances. This means you cannot change their attributes directly.

QueryDict をコピーすると、変更可能な QueryDict が返されます。エラーを発生させることなくコピーのpopメソッドを呼び出すことができます。

request.GET
GET = request.GET.copy()
GET.pop('key')    
11
追加された
感謝alasdair、非常に感謝します。
追加された 著者 Ben,

As pop is useles for an immutable dict I recommend to use request.GET.get('key', ) instead.

0
追加された