如果你不介意的調整您的網址一點你可以嵌入過濾器選項直接進入網址。這實際上具有使搜索選項具有書籤功能的好處。因此,當用戶單擊分頁上的下一個/上一個按鈕時,所有信息都將從URL中繼承。
雖然您可能必須將該網頁的網址分開。如果你已經在視圖函數中使用了一些關鍵字參數,你可以將該視圖的所有邏輯放在一個函數中。
簡單的例子
在你的urls.py
urlpatterns = patterns('',
(r'^some_url/to/form/$', 'myapp.myview'),
(r'^some_url/to/form/(?P<filter>[^/]+)/$', 'myapp.myview'),
)
然後在view.py
def myview(request, filter=None):
if request.method == 'POST':
# if the form is valid then redirect the user to the URL
# with the filter args embedded
elif filter is None:
form = MyForm() # init it with the blank defaults
elif filter is not None:
# Convert your filter args to a dict
data = {'my_form_field' : filter}
form = MyForm(data)
else:
# Sanity checking just in case I missed a case. Raise an exception.
# the rest of the display logic for the initialized form
當然,還有這裏使用這樣的解決方案不適用的情況,但不知道更多關於你的具體情況,我不能說。
希望這會有所幫助!
實際上,最終我將過濾器硬編碼到鏈接中,這不是很優雅,但工作。 – alj 2011-03-16 12:29:03