首页 > 解决方案 > 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

我做错了什么?

标签: pythondjangodjango-forms

解决方案


QueryDict.get()返回最后一个值。它是这样工作的

如果您需要它作为普通的 python 字典,则使用以下命令进行转换dict()

print(dict(self.get_form().data).get('items'))

推荐阅读