python - Django - Python 从字典中获取列表返回一个数字而不是列表
问题描述
我有一个表单,其中一个字段是多选,我试图检索所有选择的值,但是出于某种原因,我只选择了最后一个项目:
print(type(self.get_form().data))
# <class 'django.http.request.QueryDict'>
print(self.get_form().data)
# <QueryDict: {'csrfmiddlewaretoken': ['K0GeMv5u8pnT3fnS1lnXjgYakuu2mkXg61GKMVuJc2bBnDH1YMTPUHr6iY3rsZ0A'], 'contactID': ['20'], 'locationID': ['2'], 'items': ['1', '3']}>
在这一点上,项目等于:'项目':['1','3'],但是当我尝试获取项目时:
print(self.get_form().data.get('items'))
打印 3
我做错了什么?
解决方案
QueryDict.get()
返回最后一个值。它是这样工作的
如果您需要它作为普通的 python 字典,则使用以下命令进行转换dict()
:
print(dict(self.get_form().data).get('items'))