python测试开发django-108.form组件Select下拉框读取数据库内容
2021/7/14 2:05:14
本文主要是介绍python测试开发django-108.form组件Select下拉框读取数据库内容,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
select下拉框选项经常会需要从数据库动态拿数据,每次刷新页面能拿到最新的数据。
Teacher 模型
Teacher 表
# 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com/yoyoketang/ class Teacher(models.Model): """老师表""" name = models.CharField(max_length=30) age = models.IntegerField(blank=True, null=True) tel = models.CharField(max_length=30)
表里面新增一些数据
form与views
form 表单设计下拉框,下拉框的值读取Teacher表的id和name字段
from django import forms from .models import Teacher from django.forms import widgets # 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com/yoyoketang/ class SelectDemo(forms.Form): teacher = forms.CharField( label="老师", initial=[1, ], widget=widgets.Select()) # 保证每次访问重新获取最新数据 def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields["teacher"].widget.choices = Teacher.objects.values_list("id", "name")
数据库读取的数据返回list of tuple格式,如
[ ("1", "悠悠老师"), ("2", "张三老师"), ("3", "李四老师"), ("4", "王五老师"), ]
views.py视图打开页面
# 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com/yoyoketang/ class SelectDemoView(View): def get(self, request): form_obj = SelectDemo() return render(request, "select.html", locals())
模板
模板中读取select下拉框字段
<form action="" method="POST" id="detail-form" > {% csrf_token %} {% for field in form_obj %} <p> {{ field.label_tag }} {{ field }} {{ field.errors }} </p> {% endfor %} <p> <input type="submit" value="提交" > </p> </form>
select下拉框显示效果
这篇关于python测试开发django-108.form组件Select下拉框读取数据库内容的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python