我有一个相对简单的问题,但我还没找到最合适的解决方案。
我有一个表单,它将几个用户可选择的值作为Get变量传递。其中大多数是BooleanChoice字段,可以选择或不选择。我想要的是一种简洁的方法来收集列表中的所有GET键(如果不是空的),并将它们映射到表格标题的更易读的形式。
例如,如果我的get变量如下:
?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', ...,]
然后可以将我的数据与模板中的表格标题相关联。
我知道有很多方法可以做到这一点,但想知道是否有一种简洁,pythonic的方式来获得我想要的结果。
任何帮助都非常感激。
答案 0 :(得分:4)
GET参数作为request.GET
中的类字典对象提供给视图。所以,你只需要另一本字典就可以将键映射到你想要的标题:
header_mapping = {
'site': 'Site Name',
'startdate': 'Start Date'.
....
}
headers = [header_mapping[k] for k, v in request.GET.items() if v]
列表推导只是映射GET querydict中的(键,值)对列表,如果值不为空,它会查找标题映射并将其添加到列表中。