欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django開發(fā)中復(fù)選框用法示例

 更新時間:2018年03月20日 12:04:26   作者:水痕01  
這篇文章主要介紹了Django開發(fā)中復(fù)選框用法,結(jié)合實例形式分析了Django基于ajax的復(fù)選框遍歷、提交及后臺數(shù)據(jù)庫查詢等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Django開發(fā)中復(fù)選框用法。分享給大家供大家參考,具體如下:

一、查詢數(shù)據(jù)庫遍歷所有的復(fù)選框

1、python查詢數(shù)據(jù)庫所有的tag

# 新增文章
def add(request):
  if request.method == 'GET':
    tags = TagModel.objects.all()
    return render(request, 'books_add.html', {'tags': tags})
  elif request.method == 'POST':
    title = request.POST.get('title', None)
    content = request.POST.get('content', None)
    blogModel = BlogModel(title=title, content=content, author=AuthorModel.objects.get(id=1))
    blogModel.save()
    # 獲取復(fù)選框的值,是一個選中的數(shù)組
    tags = request.POST.getlist('tags')
    # 循環(huán)遍歷所有選中的復(fù)選框,利用多對多的關(guān)系追加到數(shù)據(jù)庫
    for tag in tags:
      blogModel.tag.add(tag)
    return HttpResponseRedirect('book_add')
  else:
    return HttpResponse(u'是不被處理的請求方式')

2、前端頁面

<div class="form-group">
  <label class="col-sm-2 control-label">標(biāo)簽</label>
  <div class="col-sm-9">
    {% for tag in tags %}
      <label class="checkbox-inline">
        <input value="{{ tag.id }}" type="checkbox" name="tags"/>{{ tag.name }}
      </label>
    {% endfor %}
  </div>
</div>

3、進入編輯頁面,先獲取全部的復(fù)選框及選中的id

# 編輯博客
def edit(request, blog_id):
  tags = TagModel.objects.all()
  # 利用正向查找關(guān)于本博客選擇的tag
  blogModel = BlogModel.objects.filter(id=blog_id).first()
  # 獲取全部的tag
  check_tag = blogModel.tag.all()
  # 獲取選中的id
  check_id = [int(x.id) for x in check_tag]
  print check_id
  return render(request, 'books_edit.html', {'tags': tags, 'check_id': check_id})

4、判斷如果選中的就勾選

<div class="form-group">
  <label class="col-sm-2 control-label">標(biāo)簽</label>
  <div class="col-sm-9">
    {% for tag in tags %}
      {% if tag.id in check_id %}
        <label class="checkbox-inline">
          <input value="{{ tag.id }}" type="checkbox" name="tags" checked="checked"/>{{ tag.name }}
        </label>
      {% else %}
        <label class="checkbox-inline">
          <input value="{{ tag.id }}" type="checkbox" name="tags"/>{{ tag.name }}
        </label>
      {% endif %}
    {% endfor %}
  </div>
</div>

二、ajax提交的時候注意要把復(fù)選框轉(zhuǎn)換字符串提交

1、前端代碼

$('#btn').on('click', function (e) {
  // 設(shè)置空數(shù)組
  var hobby = [];
  $('#hobby-group').find('input[type=checkbox]').each(function () {
 if ($(this).prop("checked")) {
   var hobbyId = $(this).val();
   hobby.push(hobbyId);
 }
  })
  console.log(hobby);
  $.ajax({
 'url': '/ajaxpost/',
 'method': 'post',
 'data': {
   'username': $('.username').val(),
   'hobby': hobby
 },
 'traditional': true,
 'beforeSend': function (xhr, settings) {
   var csrftoken = ajaxpost.getCookie('csrftoken');
   //2.在header當(dāng)中設(shè)置csrf_token的值
   xhr.setRequestHeader('X-CSRFToken', csrftoken);
 },
 'success': function (data) {
   console.log(data);
 }
  })
})

2、后端代碼

@require_http_methods(['POST'])
def ajaxpost(request):
  form = LoginForm(request.POST)
  if form.is_valid():
    username = form.cleaned_data.get('username', None)
    # 獲取復(fù)選框的值
    hobby = request.POST.getlist('hobby')
    print '*' * 100
    print hobby
    print '*' * 100
    return HttpResponse(u'成功')
  else:
    return HttpResponse(u'驗證錯誤')

希望本文所述對大家Django框架的Python程序設(shè)計有所幫助。

相關(guān)文章

  • python numpy中multiply與*及matul 的區(qū)別說明

    python numpy中multiply與*及matul 的區(qū)別說明

    這篇文章主要介紹了python numpy中multiply與*及matul 的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python Collatz序列實現(xiàn)過程解析

    Python Collatz序列實現(xiàn)過程解析

    這篇文章主要介紹了Python Collatz序列實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Python爬蟲獲取整個站點中的所有外部鏈接代碼示例

    Python爬蟲獲取整個站點中的所有外部鏈接代碼示例

    這篇文章主要介紹了Python爬蟲獲取整個站點中的所有外部鏈接代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • python面試題之列表聲明實例分析

    python面試題之列表聲明實例分析

    這篇文章主要介紹了python面試題之列表聲明,結(jié)合實例形式分析了Python列表的聲明、計算相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • 淺談numpy廣播機制

    淺談numpy廣播機制

    本文主要介紹了淺談numpy廣播機制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python3 unicode列表轉(zhuǎn)換為中文的實例

    python3 unicode列表轉(zhuǎn)換為中文的實例

    今天小編就為大家分享一篇python3 unicode列表轉(zhuǎn)換為中文的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 詳解Python在使用JSON時需要注意的編碼問題

    詳解Python在使用JSON時需要注意的編碼問題

    這篇文章主要介紹了詳解Python在使用JSON時需要注意的編碼問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python多線程入門學(xué)習(xí)

    Python多線程入門學(xué)習(xí)

    這篇文章主要介紹了Python多線程入門學(xué)習(xí),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-12-12
  • Django REST framework視圖的用法

    Django REST framework視圖的用法

    這篇文章主要介紹了Django REST framework 視圖,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • python使用PyFetion來發(fā)送短信的例子

    python使用PyFetion來發(fā)送短信的例子

    這篇文章主要介紹了python使用PyFetion來發(fā)送短信的例子,需要的朋友可以參考下
    2014-04-04

最新評論