У меня проблема с автоматическим обновлением данных таблицы и обновлением даты каждые x секунд, используя код jQuery и ajax ниже. Я пытаюсь посмотреть на другое представление (get_more_tables) и затем добавить эти данные в таблицу без необходимости обновления вручную, но я не могу получить его для обновления. Если я проверяю журнал консоли, данные там и обновляются каждые 10 секунд. Я новичок в программировании, django, python и т. Д., Поэтому я прошу прощения за любые плохие методы программирования!
Я попытался добавить несколько частей в конец вызова ajax, таких как $ alms_list = data;но я не могу найти правильный синтаксис для использования. Я провел некоторое исследование, и я думаю, что мне нужно перебрать строки и использовать .append? Но я не могу заставить это работать. Любая помощь будет принята с благодарностью.
views.py '' 'python
def home(request):
#alms_list = data.objects.filter(date__gt=myDate).order_by('-date')
myDate = timezone.localtime(timezone.now()) # Get Current Time
formatedDate = myDate.strftime("%d-%m-%Y %H:%M:%S")
alms_list = data.objects.filter(alm_date__gt=myDate).order_by('alm_date')
return render(request, 'home.html', {'alms_list' : alms_list, 'date': formatedDate })
def get_more_tables(request):
myDate = timezone.localtime(timezone.now()) # Get Current Time
formatedDate = myDate.strftime("%d-%m-%Y %H:%M:%S")
alms_list = data.objects.filter(alm_date__gt=myDate).order_by('alm_date')
return render(request, 'get_more_tables.html', {'alms_list' : alms_list, 'date': formatedDate })
' ''
urls.py '' 'python
urlpatterns = [
path('home/', views.home, name='home'),
#path('', views.login_redirect, name='login_redirect'),
path('alms/', views.index, name='index'),
path('get_more_tables/', views.get_more_tables, name='get_more_tables'),
]
' ''
models.py '' 'python
from django.db import models
from django import forms
# Create your models here.
class data(models.Model):
your_name = models.CharField('Your name', max_length=100, default='defaultname')
site = models.CharField('Site Name', max_length=100, default='defaultsite')
message = models.TextField(default='defaultmessage')
alm_date = models.DateTimeField('%d/%m/%Y %H:%M', help_text='example dd/mm/yyyy hh:mm (23/12/2020 14:30)')
' ''
home.html '' 'html
{% extends 'base.html' %}
<div class="container" id="test-refresh">
{% block content %}
<p class="date-time"> {{ date }} </p>
<table>
<tr>
<th>Name</th>
<th>Site</th>
<th>Message</th>
<th>Date</th>
</tr>
{% for item in alms_list %}
<tr>
<td>{{ item.your_name }}</td>
<td>{{ item.site }}</td>
<td class="alrm-mess">{{ item.message }}</td>
<td>{{ item.alm_date }}</td>
</tr>
{% endfor %}
</table>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>
function refresh() {
$.ajax({
url: '/alms/get_more_tables',
success: function(data) {
console.log(data);
$('#test-refresh').html(data);
$alms_list = data; },
});
setTimeout(refresh, 10000);
}
$(function(){
refresh();
});
</script>
{% endblock content %}
</head>
</div>
get_more_tables.html
'''html
{{ date }}
{% for item in alms_list %}
<tr>
<td>{{ item.your_name }}</td>
<td>{{ item.site }}</td>
<td class="alrm-mess">{{ item.message }}</td>
<td>{{ item.alm_date }}</td>
</tr>
{% endfor %}
' ''