Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 表单背后的逻辑(request.POST或None)_Python_Django - Fatal编程技术网

Python 表单背后的逻辑(request.POST或None)

Python 表单背后的逻辑(request.POST或None),python,django,Python,Django,request.POST或None背后的逻辑是什么?除了Django之外,我在Python项目中没有见过这样的东西 既然或运算符返回True或False值,那么如果request.POST不是None,表单知道它并将POST作为参数,这怎么可能呢 form = MyModelForm(request.POST or None) 事实上,如果请求,结果应该是Form(True)。POST不是None,否则Form(False) 它是如何工作的?在这种情况下使用或不会计算为True或False,而

request.POST或None背后的逻辑是什么?除了Django之外,我在Python项目中没有见过这样的东西

既然
运算符返回TrueFalse值,那么如果
request.POST
不是
None
表单知道它并将POST作为参数,这怎么可能呢

form = MyModelForm(request.POST or None)
事实上,如果
请求,结果应该是
Form(True)
。POST
不是
None
,否则
Form(False)


它是如何工作的?

在这种情况下使用
不会计算为
True
False
,而是返回其中一个对象

请记住,
是从左到右计算的

当QueryDict
request.POST
为空时,它会接受一个错误的值,因此会选择
操作的RHS上的项(即
),并且表单初始化时没有普通参数(即使用
):

否则,当
request.POST
不为空时,将使用QueryDict初始化表单:

form = MyModelForm(request.POST)

这里有一个很好的解释:.
表单是在没有参数的情况下初始化的
--不,它是用一个参数初始化的:
None
@SuperSaiyan我假设
None
不会被表单的
\uuuuuu init\uuuuuu
以任何方式使用。但你是对的
form = MyModelForm(request.POST)