Как получить доступ к списку контекстов, используя JavaScript, переданное представлением Django? - PullRequest
0 голосов
/ 26 мая 2020

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

У меня в модели указан город и населенный пункт. Я пытаюсь создать раскрывающийся список, в котором пользователь выбирает город, а затем местоположение, и для этого я использовал следующий logi c в файле views.py

views.py

def homepage(request):
    restaurant=Restaurant.objects.all()
    city_list=[]
    locality_dict={}
    for object in restaurant:
        city_list.append(object.city)
        if object.city in locality_dict:
            locality_dict[object.city].append(object.locality)
        else:
            locality_dict[object.city]=[object.locality,]
    print(city_list)
    print(locality_dict)
    for item in locality_dict:
        locality_dict[item]=set(locality_dict[item])
    city_list=set(city_list)
    print(locality_dict)
    context={'city_list':city_list,'locality_list':locality_dict}
    return render(request,'main/index.html',context=context)

В моем Шаблон html Я могу получить сведения о городе из контекста html файл

<select class="custom-select custom-select-sm" id="select_city" onclick="chooseCity()">
              <option selected>Select your city</option>
              {% for item in city_list %}
              <option value="{{item}}">{{item}}</option>
              {% endfor %}
            </select>
            <br>
            <div id="locality" >
              <p id="paragraph" >City</p>

              <select class="custom-select custom-select-sm" >
                <option selected>Select your  nearby locality</option>
                {% for item in locality_list %}

                  <option value="{{item}}">{{item}}</option>
                {% endfor %}
              </select>

            </div>

Но когда я пытаюсь получить местность с использованием выбранного города, я получаю пустую строку. Предложите решение

js файл

<script type="text/javascript">
          // myVarTest = myFunction( {{locality_list}} );
          function chooseCity()
          {


            var temp=document.getElementById('select_city')
            var city = temp.options[temp.selectedIndex].value
            console.log("{{ locality_list.city }}")
            // {% endfor %}
            console.log(city)
          }

      </script>

Я понял, что locality_list.city возвращается пустым, но когда я пытаюсь использовать locality_list.Delhi, который является городом, хранящимся в locality_list, он возвращается населенные пункты Дели.

Здесь возникает проблема, как получить доступ к этому списку, переданному в "context locality_list"

...