1. 程式人生 > 程式設計 >Django choices下拉列表繫結例項

Django choices下拉列表繫結例項

Models內容

from django.db import models
from django import forms
# Create your models here.

class SysConfigForm(forms.Form):
  DatabaseType = forms.ChoiceField(choices=[('sqlserver','SQLServer'),('oracle','Oracle')])


class UserInfo(forms.Form):
  vip_type = ((0,u'普通使用者'),(1,u'高階使用者'),)
  vip = forms.CharField(widget=forms.widgets.Select(choices=vip_type,attrs={'class':'form-control','with':'25px'}),)

class Months(forms.Form):
  list = ((1,u'一月'),(2,u'二月'),(3,u'三月'),(4,u'四月'),(5,u'五月'),(6,u'六月'),(7,u'七月'),(8,u'八月'),(9,u'九月'),(10,u'十月'),(11,u'十一月'),(12,u'十二月'),)
  obj_month = forms.CharField(widget=forms.widgets.Select(choices=list,attrs={'class': 'form-control'}),)


class UserUsesSourceForm(forms.Form):
  # some fields here
  SOURCES_CHOICES = (
    ('A','A'),('E','E'),)
  username = forms.CharField(label=("Username"),max_length=30,help_text = ("Required"))
  provider = forms.ChoiceField(widget=forms.Select(),choices=SOURCES_CHOICES,initial=SOURCES_CHOICES[1])

Views內容

from django.shortcuts import render,HttpResponse
from polls import models
from django.template.loader import get_template

# Create your views here.


def  index(request):
  obj = models.UserInfo()
  if request.method == 'POST':
    user_obj = models.UserInfo(request.POST)
    if user_obj.is_valid():
      print(user_obj.clean())
    else:
      user_error = user_obj.errors
      print (user_error)
      return render(request,'index.html',{'obj':obj,'user_error':user_error})

  months = models.Months()

  return render(request,'months':months})


#獲取下拉列表選中記錄
def Test01(request):
  template = get_template('test01.html')
  form = models.UserUsesSourceForm(initial={"username": request.user.username,'provider': models.UserUsesSourceForm.SOURCES_CHOICES[1]})
  #return render_to_response('update_datasource.html',context_instance=RequestContext(request,params))

  html = template.render(locals())
  return HttpResponse(html)

Test頁面內容

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<form action="" method="post">
  {% csrf_token %}
  {% if form.non_field_errors %}
  <p>
    {% for error in form.non_field_errors %}
      <div class="text-error">{{ error|escape }}</div>
    {% endfor %}
  </p>
  {% endif %}
  <div class="control-group">

    <label class="control-label" for="id_provider">Data source</label>
    <div class="controls">
      {{form.provider}}
    </div>
        </div>
</form>
</body>
</html>

顯示結果為

Django choices下拉列表繫結例項

補充知識:django前端頁面下拉選擇框預設值設定

1,前端樣式

Django choices下拉列表繫結例項

2,前端html程式碼

<select name="row.status">
  <option value="ON" {% if row.status == 'ON' %} selected="selected" {% endif %}>ON</option>
  <option value="OFF" {% if row.status == 'OFF' %} selected="selected" {% endif %}>OFF</option>
</select> 

以上這篇Django choices下拉列表繫結例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。