django request.POST.getlist[my_list', None] 为不存在的键返回 []

标签 django list request

我正在使用 Django 1.10.2。

在 View 中,下面返回[]

    print(request.POST.getlist('collected_already', None))
    print(request.POST.getlist('collected_already[]', None))
    print(request.POST.getlist('non_existent', None))
    print(request.POST.getlist('non_existent[]', None))

我希望对不存在的键返回 None,并在发送空列表时返回 []。

我的解决方法是发送和检测 ['blank'] 而不是 []。

非常感谢指点。安迪,祝你好运。

最佳答案

getlist默认返回空列表 []。如果您传递 default=None,那么它会被视为“未指定默认值”,而不是“默认为 None”。

如果你想将空列表[]强制转换为None,那么你可以简单地在表达式的末尾添加或None .

print(request.POST.getlist('collected_already') or None)

之所以可行,是因为 Python 评估 boolean expressions 的方式.如果 xy 的计算结果均为 False,则 x 或 y 返回 y

关于django request.POST.getlist[my_list', None] 为不存在的键返回 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40237682/

相关文章:

django - 应用程序和模型继承的松散耦合

python - 具有相同或相似字段的 Django 模型

python - 列表复制不起作用?

Python 循环遍历字典列表以查找属性

django - 如何截断 wagtail 流场 block 的字符?

python - 连接到 Docker 容器上的 PostgreSQL 数据库

javascript - 平面 JSON 展开为具有多个父级的层次结构作为字符串

javascript - Python 到 Node/JS

javascript - github说在rest api中创建repo时无法解析json

java - getRequestDispatcher 和 FQDN