【发布时间】:2015-01-26 11:16:14
【问题描述】:
我有一个用于在搜索页面上进行搜索的表单:
<form action="{{ url_for('searchresults') }}" method="get" name="noname" id="theform">
{{ form2.page(id="hiddenpage") }}
... some form inputs
<button id = "mybutton" type = "submit" >Apply</button>
</form>
表单是SearchForm,其中
class SearchForm(Form):
page = HiddenField()
categories = SelectMultipleField(u'Text', validators=[Optional()])
# some other stuff...
searchresults 的视图处理表单:
@app.route('/searchresults', methods=['GET'])
def searchresults():
form = SearchForm()
# handle the form and get the search results using pagination
page = int(request.args.getlist('page')[0])
results = models.Product.query....paginate(page, 10, False)
return render_template('searchresults.html', form=form, results=results, curpage=page)
render_template 中的 results 将是我查询的前 10 个结果。在searchresults.html 中,我显示结果,以及用于其他结果的next 和previous 链接。此页面还包含我根据初始提交重新设置的相同搜索表单。目前我正在处理next 和previous 链接使用
<a href="#" onclick="$('#hiddenpage').val( {{ curpage+1 }} ); $('#theform').submit();"> Next </a>
所以next 链接重新提交了相同的初始表单,但page 的值增加了。我对这种方法不太满意,因为当我将鼠标悬停在next 链接上时,我看不到我将被定向到的实际页面。它也开始感觉有点像黑客。有没有更自然的方法来做到这一点?最初提交表单时,我可以使用它来创建所需参数的长字符串,并在呈现的页面中将该字符串用作href=" {{ url_for('searchresults') }}?mystring",但这似乎也不自然。我该如何处理?
【问题讨论】:
标签: pagination flask wtforms