2012-02-20 2 views
0

У меня относительно простая проблема с bat, пока я нашел самое подходящее решение.Django GET ключи как отображаемый список

У меня есть форма, которая передает несколько значений, выбираемых пользователем, как переменные Get. Большинство из них являются полями BooleanChoice и могут быть выбраны или нет. То, что я хочу, - это сжатый способ сбора всех ключей 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', ...,] 

Какие затем можно связать с моими данными как заголовки таблиц в шаблоне.

Я знаю, что существуют различные способы сделать это подробно, но хотелось бы знать, есть ли краткий, питонический способ получить результаты, которые я хочу.

Любая помощь очень ценится.

ответ

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, и если значение не пусто он просматривает сопоставление заголовков и добавляет его в список.

+0

Отличный ответ. Спасибо! –

Смежные вопросы