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实现示例
Aug 26 Python
python中map()与zip()操作方法
Feb 27 Python
CentOS中升级Python版本的方法详解
Jul 10 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
Django开发中复选框用法示例
Mar 20 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
3种python调用其他脚本的方法
Jan 06 Python
在python image 中实现安装中文字体
May 16 Python
Python常用外部指令执行代码实例
Nov 05 Python
Python编解码问题及文本文件处理方法详解
Jun 20 Python
python 远程执行命令的详细代码
Feb 15 Python
Python 避免字典和元组的多重嵌套问题
Jul 15 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代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
理解php原理的opcodes(操作码)
2010/10/26 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
JS获取整个页面文档的实现代码
2011/12/15 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
Javascript实现简易天数计算器
2020/05/18 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
Python线程同步的实现代码
2018/10/03 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
python类共享变量操作
2020/09/03 Python
python实现马丁策略的实例详解
2021/01/15 Python
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
市场总经理岗位职责
2014/04/11 职场文书
道德演讲稿
2014/05/21 职场文书
成本会计实训报告
2014/11/05 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
网络营销实训总结
2015/08/03 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
PHP解决高并发问题
2021/04/01 PHP
基于Redis位图实现用户签到功能
2021/05/08 Redis