我正在使用Django 1.10.2。
在视图中,下面返回[]
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))
我希望为non_existent键返回None,并在发送空列表时返回[]。
我的解决方法是发送和检测['空白']而不是[]。
我很欣赏指针。最诚挚的祝福,安迪。
答案 0 :(得分:2)
getlist
默认返回空列表[]
。如果您通过default=None
,则会将其视为“未指定默认值”,而不是默认为“无”。
如果您想将空列表[]
强制转换为None
,则只需将or None
添加到表达式的末尾即可。
print(request.POST.getlist('collected_already') or None)
这是因为Python评估boolean expressions的方式。如果x
和y
评估为False,则x or y
会返回y
。
答案 1 :(得分:0)
我认为getlist()将默认参数设为None,如果找不到key,则返回空list []。
以Python列表的形式返回带有请求键的数据。如果密钥不存在且未提供默认值,则返回空列表。除非提供的默认值不是列表,否则保证返回某种列表。