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

标签 python django

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

由于 or 运算符返回 TrueFalse 值,如果 request.POST 不是NoneForm 知道它并将 post 作为参数吗?

form = MyModelForm(request.POST or None)

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

它是如何工作的?

最佳答案

在这种情况下使用 or 不会评估为 TrueFalse,但会返回其中一个对象。

请记住,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/

相关文章:

python - 递归后重置计数器

python - 如何为嵌套列表中的每一行运行一个函数?

python - 类工厂和抽象基类

python - 如何在不使用 REST 框架的情况下在 Django 和 React 应用程序中实现分页?

python - 如何将 django-storages 用于媒体文件和静态文件?

Django 身份验证失败

python - 如何将Python程序转换为Azure函数?

python - Django - 如何从以前的表单帖子中删除缓存的结果?

python - 有时,Django 消息在请求之间重复(即,它们没有被清除)

javascript - 将 Elfish 程序的 javascript 编码转换为 Python 编码