91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

安乡县| 玉环县| 越西县| 河曲县| 麻江县| 武义县| 奇台县| 耒阳市| 新营市| 河曲县| 永宁县| 武清区| 伊春市| 玉门市| 深州市| 珠海市| 承德县| 兴海县| 珲春市| 忻州市| 辽源市| 常州市| 崇仁县| 沂水县| 通城县| 凤阳县| 德安县| 玉环县| 南开区| 舒兰市| 贵德县| 琼中| 花莲县| 岐山县| 高州市| 浦县| 阿城市| 乐山市| 南皮县| 施秉县| 黄骅市|