Django QueryDict中的列表检索为字符串
我重新构建代码的最低限度为:Django QueryDict中的列表检索为字符串,django,Django,我重新构建代码的最低限度为: <form action="#" method="post"> {% csrf_token %} <input type="text" name="title"> <textarea name="content" id="" cols="30" rows="10"></textarea> <input type="text" name="tags"> <input ty
<form action="#" method="post"> {% csrf_token %}
<input type="text" name="title">
<textarea name="content" id="" cols="30" rows="10"></textarea>
<input type="text" name="tags">
<input type="submit">
</form>
带着
<QueryDict: {'csrfmiddlewaretoken': ['r4QIefk3YNSU0EivHwq8dwmHUNPFK4WwcvJyt5FK6gAQUdTl6IJ2m8V1Z71OZ1kU'], 'title': ['list'], 'content': ['display'], 'tags': ['as,string']}>
list
but
as,string
<class 'str'>
列表
但是
作为,字符串
在QueryDict中,它们是['list']
['display']
['as,string']
但被检索为字符串
这里发生了什么?
QueryDict
是它的子类,允许为同一个键处理多个值。默认情况下,多值dict的\uuu getitem\uu
方法返回列表中的最后一个元素。
但正如@WillemVanOnsem在其评论中所说的那样,MultiValueDict还提供了
getlist
方法,该方法返回与所选键相关的所有值 查询ICT就像字典一样,在类似于request.POST[key]
的查找中,它提供最后一个元素。但是您可以使用getlist
检索所有元素。
<QueryDict: {'csrfmiddlewaretoken': ['r4QIefk3YNSU0EivHwq8dwmHUNPFK4WwcvJyt5FK6gAQUdTl6IJ2m8V1Z71OZ1kU'], 'title': ['list'], 'content': ['display'], 'tags': ['as,string']}>
list
but
as,string
<class 'str'>