javascript - 在 Django 中填充数据库值后如何为下拉列表指定特定值?

标签 javascript python django ajax database

我的 Views.py 中有一个查询,我用它来填充下拉列表。它工作得很好,只是我需要它显示一个特定值,存储在与用户选择相对应的变量中。

假设我们有一个下拉列表,它是使用以下查询从数据库(“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>

View .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)

最佳答案

如果您将名为 r2context 变量(假设它与 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>

关于javascript - 在 Django 中填充数据库值后如何为下拉列表指定特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60509967/

相关文章:

python - 数据清理(标记)死传感器

python - 如何使用 beautifulsoup 获取所有页面?

python - 用 np.NaN 替换 pandas 数据框中的缺失值(以字符串形式给出)

django - 序列化 django-haystack 查询集

Django 设置 USE_TZ、TIME_ZONE 和 django rest 框架

javascript - Node ,如何终止/停止 Node 进程? Ubuntu 16.04 长期支持版

javascript - 单页多 slider

python - 在Python中将日期转换为自然语言?

javascript - AngularJS - 无法获得 $q.reject 和工作

javascript - 如何创建一个在其值中带有引号的字符串变量?