Получить Django просмотреть данные с AJAX - PullRequest
0 голосов
/ 26 апреля 2018

В настоящее время я создаю приложение, которое обновляет данные главной страницы через AJAX. Основываясь на этом вопросе, который я использовал (см. Code / 1 / ниже) ajax, чтобы обновить мою страницу. Моя другая цель - поймать только определенную переменную из представления и использовать в качестве переменной JS. Если я использую только шаблонную переменную Django в запросе AJAX, моя переменная не обновляется.

Первая попытка:

Вид Джанго:

def fetch_data (request):

    query_1=Objects.all()
    query_2=Objects.all()

    #From these  queries I colect data and push  them to lists.

    context= {
                'variable_1': variable_1,
                'variable_2': variable_2,
                'time_variable': time_variable #changing in every minute
           }

    return render(request, 'app/index.html', context)

AJAX:

Здесь я использую запрос AJAX. Я запускаю его каждую минуту, чтобы перерисовать мою страницу. Моя проблема в том, что я хочу загрузить просто скажем time_variable, чтобы использовать его снова в AJAX. Если я использую ее как единственную переменную шаблона ({{time_variale|safe}}) при перезагрузке AJAX, я получаю одну и ту же переменную снова и снова, а не новую из-за обновления. Как генерал ловить переменную Django?

setInterval(function(){
    if(new Date().getSeconds() === 0) {     
        $.ajax({
        url:'{% url 'fetch_data' %}',
        success: function (data){
              $('body').html(data); #This working, the data refreshing
              var="{{time_variable|safe}}"; #Here I always get the same in every minutes despite the variable get new value in every minute in the view.
           }
        });
  }
},1000)

1 Ответ

0 голосов
/ 26 апреля 2018

Решение 1

Извлечение данных с сервера в формате JSON и обновление переменной и HTML.Новое представление необходимо для предоставления данных для запроса AJAX.

    setInterval(function(){
    if(new Date().getSeconds() === 0) {     
        $.ajax({
        url:'{% url 'fetch_data' %}',
        success: function (data){
              response_json = JSON.parse(data)

              $('body').html(response_json.html_data); #This working, the data refreshing
              var=response_json.variable_value; #Here I always get the same in every minutes despite the variable get new value in every minute in the view.
           }
        });
    }
   },1000)

Решение 2

Периодически обновлять страницу, хотя это не рекомендуемое предложение, поскольку оно простоухудшает производительность бэкэнда и неэффективно.

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