2011-05-06 140 views
2

問題總的來說是這樣的:我有一個包含內容的頁面,用戶可以對它進行評論。插入評論應該在不重新加載頁面的情況下發生。如何在jQuery中使用Django模板標籤和過濾器?

註釋表單在視圖中處理,該視圖將註釋保存到數據庫。保存評論後,我將新評論序列化爲json並返回頁面。

data = serializers.serialize('json', [comment]) 
return HttpResponse(data, mimetype='application/javascript') 

這工作得很好,評論被預置在div的頂部,但是如何將格式化標籤應用到jQuery?評論是假設要顯示爲

<div class="comment">{{comment}}<br>{{ comment.created | timesince }}</div> 

是否有可能將模板標籤應用於jQuery代碼?當然,還有一個問題,其他評論不更新,所以timesince顯示錯誤。爲了糾正這個問題,我必須更新整個評論列表,並將所有評論再次循環到頁面,但當然問題仍然存在..

是否有可能通過某種方式返回所有評論作爲一個字典更新的評論整體上市,使jQuery的加載一個模板來顯示所有的意見..

或任何其他的想法如何解決這個問題呢?

回答

3

不是返回JSON,而是通過呈現包含要更新的頁面部分的模板來返回HTML。客戶端jQuery代碼可以根據需要插入新的HTML或替換現有的HTML。

+0

工作。接下來的問題是與jQuery,我沒有用太多。用戶只能提交一次,下一個註釋將不會顯示,直到手動刷新..問題可能與$(document).ready(function(){} - 功能,它將選項添加到窗體.. – rice 2011-05-06 21:27:34

+0

問題解決。ReplaceWith功能取代了整個div,所以沒有正確的id被第二次替換的div。 – rice 2011-05-06 21:39:38

1

最簡單的事情就是從另一個視圖中返回模板html,並使用jquery的replaceWith

相關問題