中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django處理select下拉表單實例(從model到前端到post到form)

發布時間:2020-09-17 14:58:15 來源:腳本之家 閱讀:370 作者:呆萌的代Ma 欄目:開發技術

現在假如要寫一個按照"標題",'內容','作者'等等進行針對性的選擇,這時需要涉及到使用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)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家界市| 乌兰县| 湘阴县| 鄂托克旗| 黄冈市| 永宁县| 崇礼县| 昌乐县| 东台市| 建瓯市| 建始县| 广州市| 历史| 汉寿县| 奇台县| 大丰市| 永昌县| 内乡县| 元阳县| 五寨县| 新余市| 昭平县| 湟中县| 舟山市| 洪江市| 临沂市| 日照市| 武隆县| 凤冈县| 鹤峰县| 东乌珠穆沁旗| 黄平县| 平顺县| 博白县| 高青县| 勃利县| 海阳市| 沅陵县| 新巴尔虎右旗| 汝南县| 凯里市|