为何Django的MultiValueDict获取只返回最后一个元素
我之前用过Django MultiValueDict很多次,每次要么我用这个键对应的整个列表,要么我只想用列表中的第一个值。一个常见的用法是把它当作表单的初始数据。
我遇到的问题是,默认情况下,Django MultiValueDict的get方法返回的是最后一个元素。
我是不是必须重写getitem方法,还是说有更好的解决办法呢?
1 个回答
0
你可以使用:
mv_dict.getlist()[index]
这里的 index
是你想要在列表中获取的元素的位置。例如,使用 0
可以得到第一个元素。
你可以查看这个链接了解更多信息:https://github.com/django/django/blob/master/django/utils/datastructures.py#L285
不过,如果你总是想要返回列表中的第一个元素,创建一个 MultiValueDict
的子类是个不错的选择。这要看你具体的使用场景。