Я хочу загрузить уведомления в мой базовый шаблон после нажатия на значок уведомления. В настоящее время я получаю уведомления с помощью настраиваемого контекстного процессора.Django: загрузить содержимое шаблона «base» с помощью ajax
contex_processors.py:
def notifications(request):
if request.POST and request.is_ajax:
notify_obj = #some logic here
return {'notify_obj': notify_obj}
Но после нажатия на кнопку вся страница получает обновляется. Я хочу реализовать ajax для базового шаблона, поэтому обновляется только уведомление.
Я знаю, как реализовать ajax в других шаблонах, но не уверен, как реализовать в базовом шаблоне.
Пожалуйста, помогите мне в этом или скажите мне, нужно ли мне следовать другому подходу.
Редактировать: Добавление 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 я должен использовать здесь, чтобы сделать его Ajax вызова.
Почему это проблема в базовом шаблоне? Просто добавьте/загрузите в него соответствующий JavaScript. – freakish
для этого я думаю, что мне нужно отобразить некоторый HTML-код в коде, возможно ли это в контексте процессора, если да, то скажите, как –
Я не понимаю проблему. Вы должны как-то использовать базовый шаблон (или, скорее, шаблон на основе базового шаблона). Может быть, вы должны сказать нам, что именно вы делаете и чего именно вы пытаетесь достичь. – freakish