0
我有一個簡單的Django視圖,顯示對象列表。我希望用戶能夠搜索/過濾/排序等對象列表。管理界面在默認情況下(所有這些都啓用)的方式正是我所期待的。Django - 模擬管理界面的搜索/過濾
Django有沒有簡單的方法來做到這一點?還是有一些第三方插件可以幫我嗎?還是我堅持用手寫所有的代碼?
我覺得這是許多其他人之前必須面對的問題,那麼最簡單(也是最不重要)的方法是什麼?
我有一個簡單的Django視圖,顯示對象列表。我希望用戶能夠搜索/過濾/排序等對象列表。管理界面在默認情況下(所有這些都啓用)的方式正是我所期待的。Django - 模擬管理界面的搜索/過濾
Django有沒有簡單的方法來做到這一點?還是有一些第三方插件可以幫我嗎?還是我堅持用手寫所有的代碼?
我覺得這是許多其他人之前必須面對的問題,那麼最簡單(也是最不重要)的方法是什麼?
您可以通過Javascript對對象進行排序,也可以在服務器上對對象進行排序。
javascript是限制性的,因爲在大量分頁對象的情況下,您只能排序當前頁面上的內容。
最簡單的方法是在服務器端對記錄進行排序,並允許用戶通過GET參數選擇排序;像
http://mydomain.com/path/to/view/?sort=asc
然後在您的視圖(這是非常粗糙的,不應該是你如何實現它):
def myview(request):
...
# Check if the user has provided a 'sort' parameter, and check what it is
if request.GET.get("sort", None) is "asc":
results = SomeModel.objects.get(...).order_by("-name")
...
您可以將相同的邏輯來過濾,但(在我看來) ,如果您要更改實際的查詢集(返回的對象),則應通過URL實現篩選,而不是通過GET參數(它隻影響返回結果的順序)執行篩選