Я пытаюсь использовать Ajax и Django для отправки форм. Однако, когда я нажимаю на кнопку ничего не происходит, и нет ответа, и модальное окно не открывается. Я пытаюсь предложить пользователям создать сообщение, а затем опубликовать его на странице без обновления. Пока мой код такой:
мой дом / дом. html где кнопка, которая должна открыть сообщение:
<button class="btn btn-sm btn-primary show-form ml-auto" data-url="{% url 'home:post-create' %}"><i class="fas fa-plus-square"></i></button>
мой модал и скрипт в одном файле:
<div class="modal fade" id="modal-post">
<div class="modal-dialog">
<div class="modal-content"></div>
</div>
</div>
<script>
$(document).ready(function(){
$('.show-form').click(function(){
$.ajax({
url: '/home/post/create',
type: 'get',
dataType:'json',
beforeSend: function(){
$('#modal-post').modal('show');
},
success: function(data){
$('#modal-post .modal-content').html(data.html_form);
}
});
});
$('#modal-post').on("submit",".create-form", function(){
var form = $(this);
$.ajax({
url: form.attr('data-url'),
data: form.serialize(),
type: form.attr('method'),
dataType: 'json',
success: function(data){
if(data.form_is_valid){
$('#post-list div').html(data.posts);
$('#modal-post').modal('hide');
} else {
$('#modal-post .modal-content').html(data.html_form)
}
}
})
return false;
})
});
</script>
мои взгляды на создание сообщения:
@login_required
def save_all(request,form,template_name):
data = dict()
if request.method == 'POST':
if form.is_valid():
form.save()
data['form_is_valid'] = True
posts = Post.objects.all()
data['posts'] = render_to_string('home/home_post.html',{'posts':posts})
else:
data['form_is_valid'] = False
context = {
'form':form
}
data['html_form'] = render_to_string(template_name,context,request=request)
return JsonResponse(data)
@login_required
def post_create(request):
if request.method == 'POST':
form = PostForm(request.POST)
else:
form = PostForm()
return save_all(request,form,'home/post_create.html')
Я не получаю сообщение об ошибке, просто ничего не происходит, я не знаю, в чем проблема.
РЕДАКТИРОВАТЬ: Я хочу добавить, что даже в консоли я не вижу, что ссылка извлекается просто ничего не происходит, когда я нажимаю на кнопку.
Заранее спасибо!