表单背后的逻辑(请求.开机自检或无)



request.POST or None背后的逻辑是什么?除了Django,我在Python项目中没有看到这样的东西。

由于or运算符返回 TrueFalse 值,如果request.POSTNoneForm怎么可能知道它并作为参数发布?

form = MyModelForm(request.POST or None)

事实上,如果结果不是None request.POST,结果应该是Form(True)的,否则Form(False)

它是如何工作的?

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

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

当 QueryDict request.POST为空时,它采用 Falsy 值,因此选择or操作的 RHS 上的项目(None),并且表单初始化时没有原版参数(即使用 None

):
form = MyModelForm()

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

form = MyModelForm(request.POST)

最新更新