涉及帖子数据的Django代码示例经常显示与此类似的代码:
if request.method == "POST":
post = request.POST.copy()
#do stuff with post data
是否有理由复制帖子数据而不是直接使用它?
答案 0 :(得分:10)
我认为这是因为request.POST
本身是不可变的。如果你想要一个你可以实际改变的版本(可变性),你需要一份数据的副本来使用。
请参阅this link(request.POST是一个QueryDict实例)。
class QueryDict
QueryDict
个实例是不可变的,除非您创建copy()
个实例。这意味着您无法直接更改request.POST
和request.GET
的属性。