【发布时间】:2012-09-18 15:31:07
【问题描述】:
正如标题所问,为什么 Django 家伙决定使用 querydict 来实现 request.POST 对象(当然,这反过来又使整个事情不可变?)
我知道你可以通过复制帖子数据来mutify它
post = request.POST.copy()
但是为什么要这样做呢?当然,无论如何允许事物是可变的会更简单吗?还是因为其他可能导致问题的原因而使用它?
【问题讨论】:
-
为什么要它是可变的?您可以从中获取数据并在您的视图中使用/修改它。通过向其中添加数据,您可以给人一种印象,即
request.POST已提交的数据比实际更多。 -
并不是我想要它是可变的。不超过,比如说,我想让冰淇淋变冷。但是,就冰淇淋而言,如果它不冷,它会融化,然后你会因为弄得一团糟而被骂。但是对于 request.POST 对象......我的意思是,如果我要搞砸我的代码,我就会搞砸它。我不知道开发人员向 POST 对象添加数据并引发问题的现象很普遍,因此以“修复”为目标似乎是一件奇怪的事情。
-
好问题;真的没想到。
-
我偶尔会遇到这种情况,因为我的客户有时会提交 JSON 数据(可变),有时会提交 URL 表单编码(不可变)消息。
-
对于非英语使用者,“mutify”不是一个词——正确的短语是“you can mutate it”或“you can modify it”。也不需要对开发人员进行性别区分——你可以使用“Django team”或“core devs”而不是“guys”。