如何查看Django QueryDict键是否与模式匹配

如何查看Django QueryDict键是否与模式匹配,django,django-forms,Django,Django Forms,我正在使用一个列表类型视图(购物车)的网站上工作,其中每个项目都有一个选择下拉小部件来更改配送类型。结果HTML由for循环创建,这样“item\u id\u foo”在每个循环中都会发生变化,如下所示: <select name='item_id_foo'> <option value='bar1'>bar1</option> ... <input type='submit' name='submit' value='Change'/> <

我正在使用一个列表类型视图(购物车)的网站上工作,其中每个项目都有一个选择下拉小部件来更改配送类型。结果HTML由for循环创建,这样“item\u id\u foo”在每个循环中都会发生变化,如下所示:

<select name='item_id_foo'>
<option value='bar1'>bar1</option>
...
<input type='submit' name='submit' value='Change'/>
</select>

bar1
...
因此,by request.POST.copy具有类似{'item_id_foo':'bar1'的键/值。我的问题是如何找到类似“item\u id\u foo”、“item\u id\u bar”等的键。类似“getitem”、“get”或“contains”的方法假设您知道完整键的外观,而我只知道模式。如何匹配钥匙上的图案

谢谢,, bkev

更新:select的示例值如下:
“item_id_1”、“item_id_2”、“item_id_3”…与购物车中需要编辑的商品id相匹配(每个商品都有自己的配送方式和费用)。

为什么不循环浏览整个列表,然后对每个商品的名称执行正则表达式
QueryDict.lists()
QueryDict.values()
允许您获取所有信息,然后进行循环

QueryDict.lists() 与items()类似,只是它包含字典每个成员的所有值,作为列表

例如:

>>> q = QueryDict('a=1&a=2&a=3')
>>> q.lists()
[(u'a', [u'1', u'2', u'3'])]

链接:

只需在键上迭代并保留所需的键即可

>>> post = {'item_id_1': 1, 'item_id_2': 2, 'item_id_3': 3, 'noitem': 0}
>>> dict([(k, v) for k, v in post.items() if k[:8] == 'item_id_'])
{'item_id_3': 3, 'item_id_2': 2, 'item_id_1': 1}

您能再添加一些示例值吗?当你说“看起来像‘item_id_foo’的键”时,这不是你列出的dict的全部键吗?你为什么不用购物车创建select输入的方法计算键呢?