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 制作糗事百科爬虫实例
Sep 22 Python
Python探索之静态方法和类方法的区别详解
Oct 27 Python
200 行python 代码实现 2048 游戏
Jan 12 Python
Python生成器以及应用实例解析
Feb 08 Python
Python 实现网页自动截图的示例讲解
May 17 Python
对pandas写入读取h5文件的方法详解
Dec 28 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
pytorch实现线性拟合方式
Jan 15 Python
Python API len函数操作过程解析
Mar 05 Python
python代码实现图书管理系统
Nov 30 Python
利用python爬取有道词典的方法
Dec 08 Python
python 如何读、写、解析CSV文件
Mar 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
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
php 购物车的例子
2009/05/04 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
PHP xpath()函数讲解
2019/02/11 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
javascript全局变量封装模块实现代码
2012/11/28 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
Python抓取百度查询结果的方法
2015/07/08 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
python安装requests库的实例代码
2019/06/25 Python
彻底解决Python包下载慢问题
2020/11/15 Python
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
机电工程专业应届生求职信
2013/10/03 职场文书
英语专业推荐信
2013/11/16 职场文书
工业设计专业个人求职信范文
2013/12/28 职场文书
安全隐患整改报告
2014/11/06 职场文书
大学四年个人总结
2015/03/03 职场文书
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB