urls.py
url(r'^level/ajax/reload/$', views.ajax_change_status,
name='ajax_change_status'),
url(r'^level/(\d+)/ajax/reload/$', views.ajax_change_status,
name='ajax_change_status'),
url(r'^level/(\d+)/(\d+)/ajax/reload/$', views.ajax_change_status,
name='ajax_change_status'),
В моем urls.py у меня есть эти URL. Я пытаюсь вызвать функцию ajax, на мой взгляд, чтобы обновить значок уведомления до 0 после того, как пользователь нажмет на значок колокольчика. Значок уведомления находится в шаблоне base.html. Я называю URL с именем "ajax_change_status". Я хочу, чтобы все эти URL вызывали одну и ту же функцию ajax. Возможно ли это сделать или есть лучший способ? Я получаю сообщение об ошибке сервера 500, когда нажимаю на значок колокольчика со второго и третьего URL
Моя функция ajax в views.py:
def ajax_change_status(request):
if request.is_ajax():
try:
Notification.objects.filter(receiver=request.user)
.update(viewed=True)
Addnotify.objects.filter(receiver=request.user)
.update(viewed=True)
FollowNotify.objects.filter(receiver=request.user)
.update(viewed=True)
HubNotify.objects.filter(receiver=request.user)
.update(viewed=True)
return JsonResponse({"success": True})
except Exception as e:
print(e)
return JsonResponse({"success": False})
Мой Ajax JQuery:
var clicks = 0;
$("#notify").on('click', function () {
$.ajax({
url: 'ajax/reload/',
data: {
},
success: function (data) {
if (data.success) {
console.log('ajax call success.');
$('#badge').html('0')
$('#headnotify').html('NOTIFICATIONS (0)')
// here you update the HTML to change the active to innactive
}else{
console.log('ajax call not success.');
}
clicks++;
}
});
});
Похоже, что это не входит в функцию AJAX, когда я пытаюсь это на втором и третьем URL !!