Как задать выпадающему списку значение c после его заполнения значениями базы данных в Django? - PullRequest
0 голосов
/ 03 марта 2020

В моем Views.py есть запрос, который я использую для заполнения раскрывающегося списка. Он работает хорошо, за исключением того, что мне нужно, чтобы он показывал значение c, указанное в переменной, которая соответствует выбору пользователя.

Допустим, у нас есть раскрывающийся список, который заполняется из базы данных ('world ') используя следующий запрос:

regions = world.objects.values_list("regions").distinct()

Так что это заполняет мой выпадающий список с именами регионов. Если пользователь ранее выбрал «Европа» (хранится в переменной r2), как мне изменить этот запрос, чтобы он выбрал «Европа» после заполнения раскрывающегося списка?

Редактировать:

html код:

<select id="regions" name="r2" onclick="GetSelectedText()" onChange="form.submit();">
    {% for item in regions %}
    <option val="{{ item.name_reg }}"> {{ item }} </option>    
    {% endfor %}
</select>

<script type="text/javascript">
    function GetSelectedText(){
      var r = document.getElementById("regions");
      var result_r = r.options[r.selectedIndex].text;

      document.getElementById("result_r").innerHTML = result_r;
      }
  </script>

Views.py:

def MyView(request):
    result_r = request.POST.get('r2')
    print(result_r)
    if request.method == 'POST' and result_r != None:
        query_results = world.objects.all()
        regions = world.objects.values_list("name_reg").distinct()


        query_results_dict = {
        'query_results': query_results,
        'regions': regions,
        }

        return render(request,'home.html', query_results_dict)

1 Ответ

1 голос
/ 03 марта 2020

Если вы передаете в шаблон переменную context с именем r2 (при условии, что это тот же тип данных, что и item.name_reg), вы можете выбрать параметр с помощью оператора ifequal:

<select name="regions" id="regions">
    {% for item in regions_list %}
    <option val="{{ item.name_reg }}" {% ifequal item.name_reg r2 %}selected{% endif %}> {{ item }} </option>    
    {% endfor %}
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...