Как я могу обновить мою таблицу {% for x in list %} с помощью setInterval() в Django?
[ПРИМЕЧАНИЕ] Я действительно новичок в веб-разработке. Пожалуйста, учтите, что я могу делать ошибки и задавать глупые вопросы. Извините за все.
Здравствуйте, я пытаюсь сделать таблицу для студентов с помощью Django + Ajax. Но есть проблема, которую я действительно не могу понять, как я могу реализовать мой ajax код для каждой строки в таблице.
Теперь, я беру первый индекс каждого поля в моем ajax коде. И ajax обновляет это поле в таблицах каждую секунду. Но я хочу обновлять каждую ячейку и строку каждую секунду.
Также я пытался добавить новую ячейку с помощью append(). Это не работает из-за {% for students in object_list %}
Я не понял, как добавить новую строку append() в {% for students in object_list %}
В моем html это тело таблицы и код ajax.
infoindex.html
<table class="table table-light" id="studentstable">
<thead>
<tr>
<th scope ="col">Numara</th>
<th scope ="col">Adı</th>
<th scope ="col">Soyadı</th>
<th scope ="col">Yaşı</th>
<th scope ="col">Cinsiyet</th>
</tr>
<tbody id="tbodyid">
{% for students in object_list %}
<tr>
<td id="num">{{students.num}}</td>
<td id="first_name">{{students.first_name}}</td>
<td id="last_name">{{students.last_name}}</td>
<td id="age">{{students.age}}</td>
<td id="gender">{{students.gender}}</td>
</tr>
{% endfor %}
</tbody>
</table>
<script>
setInterval(function (){
$.ajax({
url : "http://127.0.0.1:8000/studentsapi",
dataType: "json",
success : function (data) {
var element = document.getElementById('num').innerText;
if (element != num){
$('#num').text( data[0].num);
$('#first_name').text( data[0].first_name);
$('#last_name').text( data[0].last_name);
$('#age').text( data[0].age);
$('#gender').text( data[0].gender);
$("tbody").append(
"<tr><td>" + studentsFirstname + "</td><td>" + studentsLastname + "</td><td>" + studentsAge +"</td><td>" + studentsGender"</td></tr>"
)
}
},
});
}, 1000);
А это моя модель
models.py
class Students(models.Model):
num = models.IntegerField(primary_key=True, verbose_name="Numara")
Female = 'F'
Male = 'M'
choices = ((Female, 'Female'), (Male, 'Male'))
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
age = models.IntegerField()
gender = models.CharField(max_length=1, choices=choices, default=Female)
Это мой JsonResponse в views.py
views.py
def get_student_list(request):
students = list(Students.objects.all().values())
return JsonResponse(students, safe=False)
class HomView(ListView):
model = Students
template_name = 'infoindex.html'
А это мой url для json
urls.py
re_path(r'^studentsapi$', views.get_student_list),
Спасибо!