Django模板中动态生成下拉框并设置默认选中值

顾星河
顾星河
发布时间:2026-10-13| 2人浏览过
原创

本文介绍如何在Django中利用模板语言动态生成下拉框,并从后台数据库读取数据填充选项。重点解析如何通过条件判断语句,将当前用户关联的角色名称设置为下拉框的默认选中项,确保前后端数据交互的准确性与便捷性。

Django动态下拉菜单实现概述

为了节省篇幅,这里直接展示核心代码实现。


#模板
class IndexForm(forms.Form):
 # 模板,用户提交的name和这里的变量名一定要是一致的.否则不能获取数据
 user = forms.CharField(min_length=6, error_messages={'required': '用户名不能为空', 'min_length': '用户名长度不能小于6'})
 email = forms.EmailField(error_messages={'required': '邮箱不能为空', 'invalid': '邮箱格式错误'})
 """
  单选
  favor = forms.ChoiceField(
  choices=[(1, '小虎'), (2, '小小虎'), (3, '小B虎')]
 )
 """
 # 多选
 favor = forms.MultipleChoiceField(
  choices=[(1, '小虎'), (2, '小小虎'), (3, '小B虎')]
 )
 pass
#函数
def index(request):
 obj = IndexForm()
 return render(request, "index.html", {'obj': obj})


def edit_index(request):
 obj = IndexForm({'user': 'root', 'email': '123@qq.com', 'favor': [2,3]})
 return render(request, "index.html", {'obj': obj})
#前端

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
<p>{{ obj.user }}</p>
<p>{{ obj.email }}</p>
<p>{{ obj.favor }}</p>
</body>
</html>

补充说明:本节内容演示如何使用Django模板引擎构建下拉菜单,实现从后台动态获取菜单数据,并自动设定默认选中项。

具体代码实现如下:

前端模板代码结构


<select id="heard1" class="form-control" required="" data-parsley-id="6485" name="name">
   {% for name in data_list %}
   <option id="name" value="{{ name }}" {% if name == role_name %} selected {% endif %}>{{ name }}</option>
   {% endfor %}
</select>

核心逻辑解析

本部分的关键点在于:

在{% if name == role_name %} selected {% endif %} 这一判断逻辑中,变量name代表从data_list列表遍历得出的当前选项值,而role_name则是从外部传入的数据。该数据源自另一个关联数据库表,用于确定两个数据源之间的关联关系。

后端数据处理与视图函数


data = UserManage.objects.get(id=id)
role_name = data.user_role.name
query_name_list_set = RolesManage.objects.values("name")
data_list = []
for name_dict in query_name_list_set:
  data_list.append(name_dict.get("name"))
return render(request, "users_manage/edit.html", {"data": data, "data_list": data_list, "role_name": role_name})

以下是完整代码示例,旨在方便日后查阅与回顾。

以上关于Python Django自动实现HTML代码(包括下拉框及数据选择功能)的全部内容已分享完毕,希望能为读者提供参考。欢迎大家继续支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。