为何Django的MultiValueDict获取只返回最后一个元素

1 投票
1 回答
4491 浏览
提问于 2025-04-30 09:01

我之前用过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 的子类是个不错的选择。这要看你具体的使用场景。

撰写回答