我有相關的index.html分頁Django的
在我有一個表格來過濾查詢視圖視圖,以及一個表,我把我從查詢中獲得的元素
最近我添加了分頁,因爲有時查詢可能有數千個結果。
我這裏使用的所示的例子https://docs.djangoproject.com/en/1.5/topics/pagination/
如果我使用的形式和進行查詢我得到的數據分頁,但如果我點擊下一步我失去了我在表單中的數據,所以查詢變化
我看到的問題是,形式迴應POST方法,但點擊「下一步」生產用GET方法的請求,所以當form = FilterForm(request.POST)
執行,形式是有效的,但空
感謝
編輯:視圖
if request.method == 'POST': # If the form has been submitted...
form = FilterForm(request.POST) # A form bound to the POST data
if form.is_valid():
total_events_list = Make the Query
else:
form = FilterForm() # An unbound form
total_events_list = Make another Query
paginator = Paginator(total_events_list, PAGE_LIMIT, orphans=9)
try:
latest_events_list = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
latest_events_list = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
latest_events_list = paginator.page(paginator.num_pages)
context = {'latest_events_list': latest_events_list, 'form': form}
return render_to_response('db_interface/index.html', context, context_instance=RequestContext(request))
模板的
示例代碼,因爲它需要每次進行分頁時間的形式來篩選查詢
<p> Filter events </p>
<form action="/db_interface/" method="POST">{% csrf_token %}
FORM
<input type="submit" name ="filter" value="Submit" />
</form>
{% if latest_events_list %}
<form action="indexzip" method="POST">
{% csrf_token %}
{% for event in latest_events_list %}
SHOW DATA
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if latest_events_list.has_previous %}
<a href="?page={{ latest_events_list.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ latest_events_list.number }} of {{ latest_events_list.paginator.num_pages }}.
</span>
{% if latest_events_list.has_next %}
<a href="?page={{ latest_events_list.next_page_number }}">next</a>
{% endif %}
</span>
</div>
</form>
難道你不能只使用GET?我的意思是,如果它只是過濾,POST作爲REST動詞無論如何沒有什麼意義,因爲它不會改變任何數據。看到這裏:http://www.cs.tut.fi/~jkorpela/forms/methods.html – XORcist
感謝您的鏈接。我使用GET進行了測試。問題在於頁面現在不會加載表單上的初始值,並且原始問題繼續 –
但您可以將視圖函數/ html模板中的表單值傳遞給您!在分頁鏈接中,您只需將這些過濾器值添加到查詢字符串中。 – XORcist