У меня есть классическая форма и кнопка отправки, которая сохраняет данные в model1, и я хотел бы обновить данные другой модели2, вызывая функцию при нажатии кнопки. Я пытаюсь использовать запрос Ajax, как и другой, упомянутый в другом посте: Django: Как сделать объект похожим на Ajax
Я пытаюсь реализовать запрос Ajax и начать с очень простого кода (просто хочу вывести «Randomize», когда мой метод называется
У меня есть простая форма, которая будет хранить данные в связанной с ней модели (Randomisation), но я хочу обновить еще 2 модели, когда пользователь нажмет кнопку отправки формы (id = randomize)
У меня естьметод, на мой взгляд, должен вызываться Ajax, но он не работает, я ввожу в функцию JQuery (alter ('test') == OK), но метод randomize не вызывается, так как у меня нет печати в консоли (print ('test')! = OK) и подтверждение не вызывается (подтверждение («Вы рандомизировали пациента»)! = OK)
Что не так?
urls.py
from django.urls import path
from . import views
app_name='randomization'
urlpatterns = [
path('detail/<int:pk>', views.randomisation_detail, name='randomisation_detail'),
path('edit/', views.randomisation_edit, name='randomisation_edit'),
path('', views.index, name='index'),
path('randomize/', views.randomize, name="randomize"),
]
просмотров.py
@csrf_exempt
def randomize(request):
print('Randomize')
pass
randomization_edit.html
{% extends 'layouts/base.html' %}
{% load static %}
{% load crispy_forms_tags %}
{% block title %}Index | Intense TBM{% endblock %}
{% block content %}
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script>
$(document).ready(function() {
$("#randomize").click(function(event){
alert('test')
$.ajax({
type:"POST",
url:"{% url 'randomization:randomize' %}",
success: function(data){
confirm("You have randomize the patient")
}
});
return false;
});
});
</script>
<div class='container'>
<h1>Randomization form</h1>
</br>
<div class="row">
<div class="col-sm">
<strong>Patient code: </strong>{{ preincluded.pat_num }}
</div>
<div class="col-sm">
<strong>Age: </strong>{{ preincluded.pat_nai_dat }}
</div>
<div class="col-sm">
<strong>Sex: </strong>{{ preincluded.pat_sex }}
</div>
</br></br>
</div>
<form method="POST" class="post-form">
{% csrf_token %}
{{ form |crispy }}
<button id="randomize" type="submit" class="btn btn-primary">Randomize</button>
</form>
</div>
</br></br></br></br>
{% endblock %}