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 相关文章推荐
ssh批量登录并执行命令的python实现代码
May 25 Python
Python实现的tab文件操作类分享
Nov 20 Python
Python Queue模块详细介绍及实例
Dec 27 Python
python实现用户答题功能
Jan 17 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
Python FTP文件定时自动下载实现过程解析
Nov 12 Python
Pytorch之finetune使用详解
Jan 18 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
django注册用邮箱发送验证码的实现
Apr 18 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内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
PHP的基本常识小结
2013/07/05 PHP
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
js实现日期级联效果
2014/01/23 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
javascript常用方法总结
2015/05/14 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
详解vue axios二次封装
2018/07/22 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
自己使用总结Python程序代码片段
2015/06/02 Python
python通过文件头判断文件类型
2015/10/30 Python
Python对象与引用的介绍
2019/01/24 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
电气工程及其自动化专业求职信
2014/06/23 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫