В контроллере имеется функция вывода таблицы Contracts:
def list(self):
page = request.params.get('page', 1)
contracts_q = meta.Session.query(Contracts)
##contracts = contracts_q.filter_by(nunitcode='0') ##без филиалов
contracts = contracts_q.filter(and_(Contracts.nunitcode =='0', Contracts.contract.like(u'И%')))
c.paginator = paginate.Page(
contracts,
page = page,
items_per_page=20,
url_args = c.url_args,
)
return render('contracts/list.mako')
Понятно, что весь список не нужен, раз уж мы ищем контракты по определенным критериям.
Там сверху таблицы есть два поля - ncont и contract. И кнопка search.
Проще говоря, вот кусок mako-шаблона:
<div id="findbar">
${h.form(h.url_for(controller='contracts', action='search'), method="get")}
Поиск:
№ договора: ${h.text(name='ncont', required=True, size=4, maxlength=4)}
Наименование: ${h.text(name='contract', required=True, size=40, maxlength=120)}
${h.submit(value=u"Поиск", name='submit')}
${h.end_form()}
</div>
def search(self, id=None):
"""Поиск по номеру договора или части названия"""
response.status_int = 302
response.headers['location'] = h.url_for(controller='contracts', action='list', id=None)
return "Moved temporarily"
Непонятно следующее: КАК ПЕРЕДАТЬ ПАРАМЕТРЫ запроса (request.params) и как в функции list ими воспользоваться?
И еще небольшой (не главный) вопросец: зачем нужны строки
response.status_int = 302
и
return “Moved temporarily”
Спасибо