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通过select实现异步IO的方法
Jun 04 Python
Python数据类型详解(四)字典:dict
May 12 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
python笔记:mysql、redis操作方法
Jun 28 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 Python
pandas DataFrame数据转为list的方法
Apr 11 Python
对numpy中轴与维度的理解
Apr 18 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
Dec 28 Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 Python
Python基于unittest实现测试用例执行
Nov 25 Python
Django自带的用户验证系统实现
Dec 18 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模拟登陆的实现方法分析
2015/01/09 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
Vue3为什么这么快
2020/09/23 Javascript
Python压缩和解压缩zip文件
2015/02/14 Python
python对数组进行反转的方法
2015/05/20 Python
详解Python3中的Sequence type的使用
2015/08/01 Python
Python序列操作之进阶篇
2016/12/08 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
数控技术应用个人求职信范文
2014/02/03 职场文书
代理协议书范本
2014/04/22 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
患者身份识别制度
2015/08/06 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL