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标准库中的wave模块绘制乐谱的简单教程
Mar 30 Python
python中数据爬虫requests库使用方法详解
Feb 11 Python
python实战教程之自动扫雷
Jul 13 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
Aug 22 Python
Python 字符串换行的多种方式
Sep 06 Python
Python中遍历列表的方法总结
Jun 27 Python
python爬取盘搜的有效链接实现代码
Jul 20 Python
python实现屏保程序(适用于背单词)
Jul 30 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
Aug 12 Python
python——全排列数的生成方式
Feb 26 Python
Python基于smtplib协议实现发送邮件
Jun 03 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中的函数嵌套层数限制分析
2011/06/13 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
Python3 模块、包调用&amp;路径详解
2017/10/25 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
美国在线健康和美容市场:Pharmapacks
2018/12/05 全球购物
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
中科创达面试题
2016/12/28 面试题
大学生找工作推荐信范文
2013/11/28 职场文书
整改通知书格式
2015/04/22 职场文书
歌咏比赛主持词
2015/06/29 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
简历自我评价范文
2019/04/24 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
JS实现简单的九宫格抽奖
2022/06/28 Javascript