django处理select下拉表单实例(从model到前端到post到form)


Posted in Python onMarch 13, 2020

现在假如要写一个按照"标题",'内容','作者'等等进行针对性的选择,这时需要涉及到使用select下拉表单来进行选择.django是可以比较简单的解决这个问题的.

下面是model:

from django.db import models
 
class TestModel(models.Model):
  SELVALUE = (
    ('标题', 'first'), #前面是展示在前端界面的内容,后面的'first'是真正存在数据库中的
    ('内容', 'second'),
    ('作者', 'third'),
  )
  select_value = models.CharField(max_length=10, choices=SELVALUE)

接下来我们写forms:

from django import forms
 
class SelectTestForm(forms.Form):
  SELVALUE = (
    ('标题', 'first'),
    ('内容', 'second'),
    ('作者', 'third'),
  )
  sel_value = forms.CharField(max_length=10,widget=forms.widgets.Select(choices=SELVALUE))

然后就可以写view了:

from django.shortcuts import render
from django.views.generic import View
from .forms import SelectTestForm
 
class TestView(View):
  def get(self, request):
    select_form = SelectTestForm()
    return render(request, 'sel_test.html', { #这里'sel_test.html'使我们的前端页面
      'select_form': select_form, # 这里需要把form传到前端,前端就可以借助这个form填充界面
    })
 
  def post(self, request):
    select_form = SelectTestForm(request.POST)
    if select_form.is_valid():
      get_value = request.POST.get('sel_value', "") #这里可以取到下拉表单中的值
      #接下来就是保存数值与其他逻辑了
 
    else:
      #表单验证未通过的逻辑,多半要重新填写或直接给个404
      pass

这是前端界面'sel_test.html':

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<form method="post" action="">
  <select name="sel_value">
    {# 这里我们遍历form表单中的SELVALUE这个字典,然后把key,value成对取出 #}
    {% for key,value in select_form.SELVALUE %}
      <option value="{{ value }}">{{ key }}</option>
    {% endfor %}
  </select>
  <input type="submit" value="测试"/>
  {% csrf_token %}
</form>
</body>
</html>

补充知识:Django 表单,模型 结合前端select 显示

ModelChoiceField 使用方法

使用ModelChoiceField方法向前端提供模型

后端 forms.py

default_tester = forms.ModelChoiceField(
    label='测试人员', queryset=User.objects.all(), required=True
  )

前端代码

{% for user in form.default_tester.field.queryset %}
            <option value="{{ user.pk }}">
              {{ user }}
            </option>
          {% endfor %}

以上这篇django处理select下拉表单实例(从model到前端到post到form)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python超简单解决约瑟夫环问题
May 12 Python
实例Python处理XML文件的方法
Aug 31 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
Python实现图片尺寸缩放脚本
Mar 10 Python
python实现将读入的多维list转为一维list的方法
Jun 28 Python
对Python闭包与延迟绑定的方法详解
Jan 07 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
python3多线程知识点总结
Sep 26 Python
解决python -m pip install --upgrade pip 升级不成功问题
Mar 05 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
python实现俄罗斯方块游戏(改进版)
Mar 13 #Python
Python之Django自动实现html代码(下拉框,数据选择)
Mar 13 #Python
Tensorflow中的dropout的使用方法
Mar 13 #Python
python实现简单俄罗斯方块
Mar 13 #Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 #Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 #Python
python 两个一样的字符串用==结果为false问题的解决
Mar 12 #Python
You might like
社区(php&amp;&amp;mysql)四
2006/10/09 PHP
php中用foreach来操作数组的代码
2011/07/17 PHP
php curl选项列表(超详细)
2013/07/01 PHP
php实现的九九乘法口诀表简洁版
2014/07/28 PHP
PHP中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
开启PHP的伪静态模式
2015/12/31 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
$()JS小技巧
2007/07/21 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
浅析Git版本控制器使用
2017/12/10 Python
python入门教程 python入门神图一张
2018/03/05 Python
pip命令无法使用的解决方法
2018/06/12 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
九年级物理教学反思
2014/01/29 职场文书
项目施工员岗位职责
2014/03/09 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
宣传口号大全
2014/06/16 职场文书
体育系毕业生自荐信
2014/06/28 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
护士辞职信怎么写
2015/02/27 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书