Django - обновляет / обновляет данные таблицы в html с помощью jQuery и ajax каждые x секунд - PullRequest
2 голосов
/ 30 сентября 2019

У меня проблема с автоматическим обновлением данных таблицы и обновлением даты каждые 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 %}

' ''

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...