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命令行参数解析模块getopt使用实例
Apr 13 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
python实现两个dict合并与计算操作示例
Jul 01 Python
pytorch 固定部分参数训练的方法
Aug 17 Python
Python之指数与E记法的区别详解
Nov 21 Python
利用python中集合的唯一性实现去重
Feb 11 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
使用Pytorch搭建模型的步骤
Nov 16 Python
Python模拟登录requests.Session应用详解
Nov 17 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面向对象分析设计的61条军规小结
2010/07/17 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
php事件驱动化设计详解
2016/11/10 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
javascript 继承实现方法
2009/08/26 Javascript
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
深入理解node.js http模块
2018/01/24 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
Python解决N阶台阶走法问题的方法分析
2017/12/28 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
武汉英思工程科技有限公司&ndash;ORACLE面试测试题目
2012/04/30 面试题
什么是组件架构
2016/05/15 面试题
写好自荐信要注意的问题
2013/11/10 职场文书
行政经理的岗位职责
2013/11/23 职场文书
教师见习总结范文
2015/06/23 职场文书