Python Django将密钥作为映射列表获取
我有一个相对简单的问题,但我还没有找到最合适的解决方案 我有一个表单,它将几个用户可选择的值作为Get变量传递。其中大多数是布尔选择字段,可以选择也可以不选择。我想要的是一种简洁的方法,可以收集列表中的所有GET键(如果不是空的),并将它们映射到更易于阅读的表格标题形式 例如,如果我的get变量如下所示:Python Django将密钥作为映射列表获取,python,django,Python,Django,我有一个相对简单的问题,但我还没有找到最合适的解决方案 我有一个表单,它将几个用户可选择的值作为Get变量传递。其中大多数是布尔选择字段,可以选择也可以不选择。我想要的是一种简洁的方法,可以收集列表中的所有GET键(如果不是空的),并将它们映射到更易于阅读的表格标题形式 例如,如果我的get变量如下所示: ?site=1&&startdate=1988-09-09&enddate=1989-09-09&mean_air_temp=True&q=table&
?site=1&&startdate=1988-09-09&enddate=1989-09-09&mean_air_temp=True&q=table&submit=Query
我想列一张这样的清单:
['site', 'startdate', 'endate', 'man_air_temp', ...,]
然后以:
['Site Name', 'Start Date', 'End Date', 'Mean Air Temp', ...,]
然后可以将其作为模板中的表标题与我的数据关联
我知道有很多种方法可以做到这一点,但我想知道是否有一种简洁的、类似于蟒蛇的方法可以达到我想要的效果
非常感谢您的帮助。在
请求中,GET参数作为类似字典的对象提供给视图。GET
。因此,您只需另一本字典即可将关键字映射到所需的标题:
header_mapping = {
'site': 'Site Name',
'startdate': 'Start Date'.
....
}
headers = [header_mapping[k] for k, v in request.GET.items() if v]
列表理解只是通过GET querydict中的(键、值)对列表进行映射,如果该值不为空,它将查找标题映射并将其添加到列表中。GET参数在
请求中作为类似字典的对象提供给视图。GET
。因此,您只需另一本字典即可将关键字映射到所需的标题:
header_mapping = {
'site': 'Site Name',
'startdate': 'Start Date'.
....
}
headers = [header_mapping[k] for k, v in request.GET.items() if v]
列表理解只是通过GET querydict中的(键、值)对列表进行映射,如果该值不为空,它将查找标题映射并将其添加到列表中