request.POST or None
背后的逻辑是什么?除了 Django,我还没有在 Python 项目中看到过这样的东西。
由于 or
运算符返回 True 或 False 值,如果 request.POST
不是None
,Form
知道它并将 post 作为参数吗?
form = MyModelForm(request.POST or None)
事实上,如果request.POST
不是None
,结果应该是Form(True)
,否则Form(错误)
。
它是如何工作的?
最佳答案
在这种情况下使用 or
不会评估为 True
或 False
,但会返回其中一个对象。
请记住,or
是从左到右求值的。
当QueryDictrequest.POST
为空时,取Falsy值,所以选择or
操作的RHS上的item (即 None
),并且表单在没有 vanilla 参数的情况下进行初始化(即使用 None
):
form = MyModelForm()
否则,当 request.POST
不为空时,将使用 QueryDict 初始化表单:
form = MyModelForm(request.POST)
关于python - 表单背后的逻辑(request.POST 或 None),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38251922/