我看我的Turbogears 2項目從http://rapidprototype.ch/bg2docs/tg2pagination.html分頁的例子,它的工程很好,但是,我有一個關於我的查詢參數的問題,當我改變我正在尋找的頁面。如何保持與webhelpers.paginate分頁查詢參數
這是我在我的控制器上市時所擁有的。
def list(self, page=1, **kw):
q = ""
if kw.has_key('q'):
log.debug("searching %s" % kw)
q = kw['q']
if kw.has_key('all'):
q = ""
products = DBSession.query(model.Product).filter(
or_(model.Product.name.like('%%%s%%' % q),
model.Product.description.like('%%%s%%' % q),
model.Product.model.like('%%%s%%' % q),
model.Product.code.like('%%%s%%' % q))).all()
def get_link(product):
return Markup("""<a href="form?id=%s">%s</a>""" % (product.id, product.id))
product_fields = [
(Markup("""<a href="?s=id">Id</a>"""), get_link),
(u'Name', 'name'),
(u'Model', 'model'),
(u'Code', 'code'),
(u'Description', 'description')]
product_grid = MyDataGrid(fields = product_fields)
currentPage = paginate.Page(products, page, items_per_page=50)
return dict(currentPage=currentPage,
title=u'Products List', item=u'product', items=u'products',
data=currentPage.items,
grid=product_grid,
page=u'Search %s results' % q,
q=q,
hits=len(products))
這是HTML模板片段
<h1>List of ${items}</h1>
<form action="list" method="get">
<input name="q" type="text" value="${value_of('q', default='')}"/>
<input type="submit" value="Search"/> <input type="submit" name="all" value="All"/>
</form>
${hits} ${items} found
<p class="pagelist">${currentPage.pager(format='$link_first ~3~ $link_last')}</p>
<div>
${grid(data)}
</div>
<p><a href="${tg.url('form')}">Add a ${item}</a></p>
的搜索工作正常導致像這樣的鏈接「/列表?Q =電纜」但是當我點擊了分頁頁面的「1 ,2 ... 8,9「變爲'/list?page = 2'
如何將以前的查詢參數或任何其他參數添加到鏈接?
這個證明工作到目前爲止,還沒有找到任何關於這個或任何其他方法的文檔,我將其標記爲正確的答案。 – Juparave 2009-10-09 14:43:36