передача данных из view в представление

149
28 мая 2019, 10:10

Как передать JSON объект в JS код в представление Django? В данном случае как передать responseData в массив points?

view:

from django.shortcuts import render
from django.views.generic import TemplateView
from django.http import JsonResponse
from .models import Station
# Create your views here.
class List(TemplateView):
    template_name = 'station_list.html'
    def get(self, request):
        all_stations = Station.objects.all()
        ctx = {
            'all_stations': all_stations,
        }
        return render(request, self.template_name, ctx)

def index(request):
    responseData = {
        'point': [22, 44]}
    return render(request, "station_list.html", context={'responseData': responseData})

Представление:

    <script>
    points = []; //массив в который надо поместить responseData
    points.push("{{point}}");
    </script>
</head>
</head>
<body>
<h1>Станции и обсерватории</h1>
<div id="viewDiv"></div>
{% block content %}
<h1>{{ point }}</h1>
<table border='1' cellpadding="5px">
    <tr style='background: black; color: white;'>
        <td>Id</td>
        <td>Код</td>
        <td>Имя</td>
        <td>Широта</td>
        <td>Долгота</td>
        <td>Тип</td>
        <td>Ссылка</td>
    </tr>
    {% for station in all_stations %}
    <tr>
        <td>{{station.Pk}}</td>
        <td>{{station.sitecode}}</td>
        <td>{{station.namestation}}</td>
        <td>{{station.latitude}}</td>
        <td>{{station.longitude}}</td>
        <td>{{station.type}}</td>
        <td><a href={{station.link}}>{{station.link}}</a></td>
    </tr>
    {% endfor %}
</table>
{% endblock %}
</body>
</html>
Answer 1

Весь контекст нужно сформировать в одной вьюхе. А потом передать его в шаблон Например:

def get_json():
    #Какие-то действия
    responseData = {} #каким-то образом формируется json
    return responseData
class List(TemplateView):
    template_name = 'station_list.html'

    def get(self, request):
        all_stations = Station.objects.all()
        responseData = get_json()
        ctx = {
            'all_stations': all_stations, 'responseData': responseData
        }
        return render(request, self.template_name, ctx)
READ ALSO
Поиск по меню независимо от регистра

Поиск по меню независимо от регистра

Есть такой кодОн ищет прямо в меню и отфильтровывает результаты

176
Анимация stroke-dashoffset

Анимация stroke-dashoffset

Хочу сделать чтобы по таймауту оффсет возвращался назад, запись такого рода не работает, как это можно исправить?

152
Как обновить массив?

Как обновить массив?

Подскажите пожалуйста, как можно обновить весь массив? У меня почему-то находит и обновляет только первую запись

156
как извлечь последние цифры какого-либо класса в html?

как извлечь последние цифры какого-либо класса в html?

я хочу сделать чтоб классы можно было использовать как переменные

178