国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django開發中復選框用法示例

2020-01-04 15:23:23
字體:
來源:轉載
供稿:網友

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

一、查詢數據庫遍歷所有的復選框

1、python查詢數據庫所有的tag

# 新增文章def add(request):  if request.method == 'GET':    tags = TagModel.objects.all()    return render(request, 'books_add.html', {'tags': tags})  elif request.method == 'POST':    content = request.POST.get('content', None)    blogModel = BlogModel(title=title, content=content, author=AuthorModel.objects.get(id=1))    blogModel.save()    # 獲取復選框的值,是一個選中的數組    tags = request.POST.getlist('tags')    # 循環遍歷所有選中的復選框,利用多對多的關系追加到數據庫    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">標簽</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、進入編輯頁面,先獲取全部的復選框及選中的id

# 編輯博客def edit(request, blog_id):  tags = TagModel.objects.all()  # 利用正向查找關于本博客選擇的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">標簽</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提交的時候注意要把復選框轉換字符串提交

1、前端代碼

$('#btn').on('click', function (e) {  // 設置空數組  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當中設置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)    # 獲取復選框的值    hobby = request.POST.getlist('hobby')    print '*' * 100    print hobby    print '*' * 100    return HttpResponse(u'成功')  else:    return HttpResponse(u'驗證錯誤')

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


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 库尔勒市| 张家口市| 左权县| 尚义县| 屏边| 城口县| 开阳县| 临安市| 湘乡市| 库尔勒市| 连平县| 曲水县| 定襄县| 克山县| 黄浦区| 吴桥县| 新民市| 井陉县| 泾川县| 伽师县| 株洲市| 石楼县| 应城市| 阿图什市| 明水县| 左贡县| 科尔| 康平县| 稷山县| 阿拉善右旗| 甘孜县| 云林县| 城固县| 桂东县| 景德镇市| 丰县| 桂阳县| 安陆市| 古丈县| 民乐县| 米脂县|