我想在我的基本模板中包含通知,因爲它在stackoverflow左上角。我知道這可以通過製作自定義模板標籤或自定義上下文處理器來完成。Django在發佈後無需重新加載基本模板的更新部分
現在我的要求是,我不希望每次加載頁面時都加載通知,而只是當我們點擊通知圖標時才加載通知。
我不知道其他代碼或腳本是必需的,因爲我是jquery/ajax的新手。
請讓我知道是否需要任何其他細節。謝謝。
編輯:(添加詳細信息如下)
context_prrocessors.py:
def notifications(request):
if request.POST and request.is_ajax:
notify_obj = #some logic here
return {'notify_obj': notify_obj}
base.html文件(部分):
<div id="notify-div">
<form id="notify-form" method="post">
<input type="submit" name="notify" value="Show notifications">
{% csrf_token %}
</form>
{% for notify in notify_obj %}
{{ notify.user.user_id.username }}, {{ notify.wish.wish_text }} - {{ notify.added }}
{% endfor %}
</div>
<script>
$(document).ready(function() {
$('#notify-form').submit(function() { // catch the form's submit event
$.ajax({ // create an AJAX call...
data: $(this).serialize(), // get the form data
type: $(this).attr('method'), // GET or POST
url: $(this).attr('action'), // the file to call
success: function(response) { // on success..
$('#notify-div').html(response); // update the DIV
}
});
return false;
});
});
</script>
請告訴西隧JS要我在這裏使用。
非常感謝,這真的有幫助。我錯誤地採取了錯誤的做法。我很困惑與GET和POST。再次感謝 :) –