Невозможно вызвать представление django с помощью ajax
Я хочу вызвать представление django на стороне клиента, которое будет отображать все сообщения из моделей на html-странице
AJAX функция
<script>
$(document).ready(function(){
setInterval(function(){
$.ajax({
type: 'GET',
url : "/load_with_room_name/{{room_name}}/",
success: function(response){
console.log(response);
$("#display").empty();
},
error: function(response){
alert('An error occured')
}
});
},1000);
})
</script>
функция представления django
def load_with_room_name(request,room_name):
try:
current_user = Account.objects.get(email=str(request.user))
chat_room = ChatRoom.objects.get(room_name=room_name)
if chat_room.room_user_1 == current_user or chat_room.room_user_2 == current_user:
print(current_user)
return redirect('room',room_name,current_user.username)
else:
return redirect('chat')
except Exception as e:
log_exception(request,e,view_name="load_with_room_name")
return render(request,"error.html")
django urlpattern для приведенного выше представления
urlpatterns = [ path('load_with_room_name/<str:room_name>',views.load_with_room_name,name='load_with_room_name'),
]
изменить url на
url : "{% url 'load_with_room_name' %}",
для использования url-шаблона django и помните о косой черте в вашем исходном коде. В вашем url-шаблоне нет косой черты!
Хотя вы уже проверили, что он работает, правильно обратившись к нему в вашем проекте django, я вижу, что вам нужно только добавить полный путь следующим образом
url : window.location.origin + "/load_with_room_name/{{room_name}}/",