表单背后的逻辑request.POST或无

问题描述

采用or在这种情况下,不计算为TrueFalse,但回报的对象之一。

请记住,这or是从左到右评估的。

当的QueryDictrequest.POST是空的,它需要一个Falsy值,因此关于该项目 RHS 所述的or操作被选择(即None),并且形式而不初始化 香草 参数(即,None):

form = MyModelForm()

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

form = MyModelForm(request.POST)

解决方法

背后的逻辑是request.POST or None什么?除了Django,我在Python项目中从未见过这样的事情。

由于oroperator返回的是 TrueFalse
值,如果request.POST不是None,则怎么可能Form知道它并将post作为参数?

form = MyModelForm(request.POST or None)

实际上,结果应为Form(True)if request.POSTnot None,否则为Form(False)

这个怎么运作?