В моей модели hostelApplication есть логическое поле, я хочу изменить это поле с помощью кнопки html, но я не очень разбираюсь в js. Пожалуйста, кто-нибудь, скажите мне, что я делаю не так. вот мой models.py, я показал только необходимые файлы.
class hostelApplication(models.Model):
hostelName = models.CharField(verbose_name='Select Hostel', max_length=20, choices=hostels, default='shivalik')
isApproved = models.BooleanField(default=False)
def __str__(self):
return self.hostelName
Я добавил свой URL-адрес в URL, как
url(r'^ajax/change_status/$', views.ajax_change_status, name='ajax_change_status')
, вот мой html файл
{% for application in applications %}
{% csrf_token %}
<div class="table-content">
<div class="table-row">
<div class="table-data">{{application.hostelName}}</div>
<div class="table-data">{{application.dateApplied}}</div>
<div class="table-data">
<button type="button" class="btn btn-info" id="state">Approve</button>
</div>
</div>
{% endfor %}
Я добавил этот скрипт js в этот шаблон сверху
<script>
$("#state").on('click', function () {
var username = $(this).val();
var isApproved = true // or false, you have to set it
var id = application.id // you have to set it
$.ajax({
url: '/ajax/change_status/',
data: {
'csrfmiddlewaretoken': $('input[name="csrfmiddlewaretoken"]').val(),
'isApproved': isApproved
'id': username
},
dataType: 'json',
success: function (data) {
if (data.success) {
alert("ajax call success.");
// here you update the HTML to change the active to innactive
}else{
alert("ajax call not success.");
}
}
});
});
</script>