如何查看Django QueryDict键是否与模式匹配
我正在使用一个列表类型视图(购物车)的网站上工作,其中每个项目都有一个选择下拉小部件来更改配送类型。结果HTML由for循环创建,这样“item\u id\u foo”在每个循环中都会发生变化,如下所示:如何查看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'/> <
<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输入的方法计算键呢?