亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

明水县| 庄河市| 海淀区| 岳阳县| 东山县| 梅河口市| 吴桥县| 鸡泽县| 贵定县| 温州市| 望都县| 合川市| 南投县| 邵阳市| 晋中市| 东平县| 冕宁县| 出国| 永清县| 石台县| 东方市| 海兴县| 苏尼特左旗| 白城市| 开封市| 梅河口市| 邵东县| 南通市| 东辽县| 固原市| 綦江县| 会同县| 杭锦旗| 乌鲁木齐市| 布尔津县| 双柏县| 西华县| 丰镇市| 疏附县| 鹤山市| 德江县|