A QueryDict
是一个类似于字典的集合,因此只能返回一个元素,因为否则它不会(完全)遵守字典协定。
您可以在此处使用QueryDict.getlist(..)
[Django-doc]方法:
request.POST.getlist('projects') # returns ['1', '2']
如文档所述:
QueryDict.getlist(key, default=None)
返回带有请求的数据
key
的列表。如果key
不存在并且default
未提供值,则返回一个空列表。除非default
提供的值不是列表,否则保证返回列表。
它返回最后一个值的事实也被记录在案:
QueryDict.__getitem__(key)
返回给定值
key
。如果key
具有多个值,则返回最后一个值。django.utils.datastructures.MultiValueDictKeyError
如果key
不存在,则引发。(这是Python标准的子类KeyError
,因此您可以坚持使用catchKeyError
。)