django处理select下拉表单实例(从model到前端到post到form)

 更新时间:2020年03月13日 08:54:43   作者:呆萌的代Ma  
这篇文章主要介绍了django处理select下拉表单实例(从model到前端到post到form),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

现在假如要写一个按照"标题",'内容','作者'等等进行针对性的选择,这时需要涉及到使用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自动抢红包教程详解

    在本篇文章里小编给大家整理了关于Python自动抢红包的相关知识点内容,有兴趣的朋友们参考学习下。
    2019-06-06
  • 简单谈谈python中的多进程

    简单谈谈python中的多进程

    multiprocessing模块是python库中最高级和功能最强大的模块之一。本文就来给大家简单讲讲multiprocessing一般性技巧
    2016-11-11
  • python将字典内容存入mysql实例代码

    python将字典内容存入mysql实例代码

    这篇文章主要介绍了python将字典内容存入mysql实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Django中如何使用Channels功能

    Django中如何使用Channels功能

    这篇文章主要介绍了在Django中使用Channels功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Python logging自定义字段输出及打印颜色

    Python logging自定义字段输出及打印颜色

    这篇文章主要介绍了Python logging自定义字段输出及打印颜色,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 一文详解Python中生成器的原理与使用

    一文详解Python中生成器的原理与使用

    生成器表达式本质上就是一个迭代器,是定义迭代器的一种方式,是允许自定义逻辑的迭代器。本文将详细讲解一下Python中生成器的原理与使用,需要的可以参考一下
    2022-05-05
  • 详解Python中的正斜杠与反斜杠

    详解Python中的正斜杠与反斜杠

    这篇文章主要介绍了详解Python中的正斜杠与反斜杠,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • pytorch AvgPool2d函数使用详解

    pytorch AvgPool2d函数使用详解

    今天小编就为大家分享一篇pytorch AvgPool2d函数使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 安装docker-compose的两种最简方法

    安装docker-compose的两种最简方法

    在本篇文章里小编给各位整理的是关于安装docker-compose的具体方法总结,有需要的朋友们参考下。
    2019-07-07
  • Python中常见的数制转换有哪些

    Python中常见的数制转换有哪些

    在本篇文章里小编给大家整理的是一篇关于Python中常见的数制转换例举内容,有需要的朋友们可以跟着学习下。
    2020-05-05

最新评论