我試圖通過ajax調用實現分頁。當用戶想要查看下一個x個結果時,該頁面不應該刷新。在一個HttpResponse中返回兩件事
這是我的問題。返回QuerySet非常簡單。我只是做(sumaJson是定製)
data = serializers.serialize('sumaJson', result_page.object_list, relations=('first_major', 'country_of_origin', 'second_major'))
return HttpResponse(data, mimetype="application/json")
現在我還想要回東西像
result_page.has_previous()
result_page.has_next()
result_page.paginator.count
等。我對於我的生活無法弄清楚如何在一個響應中獲得兩者。我無法將此信息添加到result_page.object_list,因爲序列化程序失敗。如果我的東西的那種
simplejson.dumps(paging_info + result_page.object_list)
然後在的JavaScript的查詢集不再是對象的列表,但人物的只是一個大字符串,它不能與
$.each(data.data, function(index, item){
我試圖解釋一些糟糕的黑客,如創建一個虛假的對象,並將其放入object_list,序列化,然後刪除該對象。這可以讓我獲得數據。但是,我不想創建和刪除假物件。
我不想和串行染指。我不想發送第二個Ajax請求,只要我返回querySet以獲取分頁信息。
我錯過了什麼嗎?是否有一種簡單的方法可以在一個響應中獲得兩個答案?謝謝!
我很想做這樣的事情,但我不知道如何去到這個結構。序列化程序只能使用QuerySets和不是字典的對象列表。我可以用simplejson.dumps來做到這一點,但是我失去了進行深層序列化的能力。 – dpetters 2010-09-29 03:59:04
我使用帶有自定義JSON編碼器的'simplejson.dumps'('dumps'採用可選的'cls'關鍵字參數),它負責編碼我的模型實例。 – jpwatts 2010-09-29 04:20:04
我知道wadofstuff提供了一個深受歡迎的深度序列化器,但它僅適用於查詢集。任何有關建立深度序列化模型的良好JSON編碼器的建議? – dpetters 2010-09-29 16:14:58