способ хранения переменных POST при использовании django - PullRequest
0 голосов
/ 31 января 2011

с помощью формы я ищу школы поблизости и отображаю их в виде таблицы.

inside views.py

def method1:
   printquery = request.POST.copy()
   zip = printquery['zip']
   if not zip:
       city = printquery['city']
       state = printquery['state']
       zip = getZip(city,state)      
   results = zipObj.getSchools(zip);
   render_to_response('some.html',{'results':results,'query':printquery,})

внутри шаблона

<form id="print-search" target="_blank" action="" method="post" name="print">
     <input type="hidden" value="{%if query%}{{query}}{%endif%} name="query"/>
     <input type ="submit" value="Print the Results" name="submitPrint"/>
</form>
<table>
 {% block xxx%}displays schools result {%endblock%}
</table>

когда нажата кнопка «Распечатать результаты». Я хочу использовать «запрос», повторите поиск и распечатайте на отдельной странице [у меня нет выбора для сохранения в идентификаторе сессии]. Проблема, с которой я сталкиваюсь, заключается в том, что {{query}} является тьюрингом для строки, т.е. u"{'zip': u'76123'"}, с которой я не могу сделать что-то вроде query['zip'], Есть ли способ решить это. Идеи приветствуются.

1 Ответ

0 голосов
/ 31 января 2011

Вместо того, чтобы принимать весь словарь в качестве значения, сделайте что-то вроде этого

<form id="print-search" target="_blank" action="" method="post" name="providerprint">
  <input type="hidden" value="{%if query.zip %}{{query.zip}}{%else%}""{%endif%}" name="zip"/>
  <input type="hidden" value="{%if query.city %}{{query.ciyt}}{%else%}""{%endif%}" name="city"/>
  <input type="hidden" value="{%if query.state %}{{query.state}}{%else%}""{%endif%}" name="state"/>
  <input type ="submit" value="Print this Search" name="submitProviderprint"/>
</form>

внутри views.py мы можем получить к нему доступ как

zip = params['zip']
city = params['city']
state = params['state']  

и у меня это сработало .:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...