request.POST.get('category_id')给出单值

时间:2016-06-19 08:24:57

标签: python django

我有一个帖子请求,请求提供以下值:

request.POST
<QueryDict: {u'csrfmiddlewaretoken': [u'AbyDcwOtSyPwuC1JxeVUKJFk33XhH2us'], u'category_id': [u'15', u'26', u'7', u'8']}>

我希望list_id中的所有值都在列表中。但是如果我尝试使用 request.POST.get('category_id')来访问值,它只给出了最后一个值[u'8']而不是孔列表。

我的方法有误吗?如果我是,那么正确的方法是什么?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

是的,您需要.get()更改为.getlist()才能获得所有值。

request.POST.getlist('category_id') 

.get() QueryDict操作:

Django QueryDict对象的

.get()操作返回key的最后一个值,如果它有多个值。

  

QueryDict.__getitem__(key)
   返回给定键的值。如果   密钥有多个值,__getitem__() 会返回最后一个值

.getlist() QueryDict操作:

如果您需要获取特定密钥的所有值,则需要使用.getlist().

  

QueryDict.getlist(key, default=None)
   返回带有的数据   请求密钥,作为Python列表。如果键,则返回一个空列表   不存在,并且未提供默认值。它保证   除非提供的默认值不是a,否则返回某种列表   列表。