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实现DNS正向查询、反向查询的例子
Apr 25 Python
Python中for循环控制语句用法实例
Jun 02 Python
让Python代码更快运行的5种方法
Jun 21 Python
python制作最美应用的爬虫
Oct 28 Python
python如何在终端里面显示一张图片
Aug 17 Python
为什么你还不懂得怎么使用Python协程
May 13 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 Python
python线程安全及多进程多线程实现方法详解
Sep 27 Python
Python爬取阿拉丁统计信息过程图解
May 12 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
python index() 与 rindex() 方法的使用示例详解
Dec 24 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 stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
微信支付开发维权通知实例
2016/07/12 PHP
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
python字符串的常用操作方法小结
2016/05/21 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
高级护理专业毕业生推荐信
2013/12/25 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
党员承诺践诺书
2014/05/20 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers