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 相关文章推荐
easy_install python包安装管理工具介绍
Feb 10 Python
整理Python中的赋值运算符
May 13 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
jupyter 使用Pillow包显示图像时inline显示方式
Apr 24 Python
深入了解python列表(LIST)
Jun 08 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
浅谈Django前端后端值传递问题
Jul 15 Python
python smtplib发送多个email联系人的实现
Oct 09 Python
Python安装第三方库攻略(pip和Anaconda)
Oct 15 Python
matplotlib之pyplot模块之标题(title()和suptitle())
Feb 22 Python
Python Django 后台管理之后台模型属性详解
Apr 25 Python
Python中的 Set 与 dict
Mar 13 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 xml文件操作代码(一)
2009/03/20 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
浅析return false的正确使用
2013/11/04 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
业务员岗位职责范本
2013/12/15 职场文书
关心下一代工作先进事迹
2014/08/15 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server