You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django实现页面刷新后保留下拉菜单选中值的方法

解决Django下拉菜单刷新后保留选中值的问题

要实现页面刷新后下拉菜单保持选中状态,需要从视图和模板两方面修改:

1. 在视图中传递选中参数到模板

修改views.py,将用户选中的选项值传入模板上下文,让模板能获取到之前的选择:

option_menu = request.GET.get("option-menu")

qs = Database.objects.filter(database_id=id)

if option_menu != '' and option_menu is not None:
    qs = qs.filter(name__icontains=option_menu)

return render(request,
              template_name='main/database.html',
              context={
                  "queryset": qs,
                  "selected_option": option_menu  # 新增:传递选中的选项值
              })

2. 在模板中动态设置选中状态

修改HTML模板,通过判断当前选项值是否等于selected_option,动态添加selected属性;默认的"Choose a Name"仅在无选中值时保持选中:

<html>
  <form method="GET" action=".">
    <select name="option-menu" id="option-menu">
      <option value="" disabled {% if not selected_option %}selected{% endif %}>Choose a Name</option>
      {% for d in database %}
        <option value="{{d.name}}" {% if d.name == selected_option %}selected{% endif %}>{{d.name}}</option>
      {% endfor %}
    </select>
    <button type="submit" class="btn-filter">Filter</button>
  </form>
</html>

原理说明:表单提交后,视图会把用户选中的选项值传递给模板,模板根据该值为对应的<option>标签添加selected属性,页面刷新后就能自动保持选中状态。

内容的提问来源于stack exchange,提问作者evan2160

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 03:16:04