Django jquery select 2 검색 을 위 한 드 롭 다운 상자 구현

최근 에 웹 애플 리 케 이 션 을 개발 할 때 검색 기능 이 있 는 드 롭 다운 상 자 를 사용 해 야 합 니 다.인터넷 에 있 는 django 가방,django-select2-forms 를 시 도 했 습 니 다.이것 은 기능 이 강 한 packets 입 니 다.안 타 깝 게 도 제 개발 환경 centos+python 3.7+django 2.0.2 를 지원 하지 않 아 원생 jquery select 2 를 다운로드 할 수 밖 에 없 었 습 니 다.공식 문 서 를 참고 하여 여러 번 테스트 한 결과 간단 한 검색 기능 드 롭 다운 상 자 를 실현 하 였 습 니 다.이 는 전단 검색 상자 에 입력 한 문자 에 따라 ajax 가 배경 에서 시도 하 는 함수 로 데이터 베 이 스 를 조회 한 다음 검색 결 과 를 전단 에 되 돌려 드 롭 다운 상자 목록 을 만 듭 니 다.
11
1,전단 코드

<script src="/static/jquery-3.4.1.js"></script>
<!--       Bootstrap    CSS    -->
<link rel="stylesheet" href="/static/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
 
<!--     Bootstrap     (      ) -->
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-rc.1/css/select2.min.css" rel="stylesheet" />
 
<!--     Bootstrap    JavaScript    -->
<script src="/static/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-rc.1/js/select2.min.js"></script>

<select id="user_list" name="user_list" style="width:30%" >
    <option value="">     -------</option>
 </select>

<script>
$('#user_list').select2({
    minimumInputLength: 3,
    ajax:
        {
            url: "/deviceman/ajax_get_user_list",
            dataType: 'json',
            type: 'GET',
            delay: 250,
            data: function (params) {
            return {
            search: params.term,
                    }
                                    },
 
            processResults: function (data) {
            return {
            results: data
                    };
                                            },
 
            cache: true
        },
 
});
 
</script>
2,배경 보기 함수

def ajax_get_user_list(request):
    """
    AJAX     -    
    """
    start = int(request.GET.get('iDisplayStart', '0'))
    length = int(request.GET.get('iDisplayLength', '30'))
    search = request.GET.get('search', '')
    current_office=request.session.get('officename')
    #            
    if search:
    #        , start    start+length 
        orgs = user_list.objects.filter(   (Q(full_name__icontains=search) | Q ( email_address__icontains=search))&Q(dept_list__dept_name__icontains=current_office)).values('id').annotate(text=F('full_name')).exclude(user_status='inactive')
    else:
        orgs = user_list.objects.all().values('id').annotate(text=F('full_name'))
 
    # val_list = []
    # for org in orgs:
    #     val_list.append({'id': org.id, 'text': org.full_name})
    #     #                        。        ,  SELECT2        id、text      
    ret=list(orgs)
    result = json.dumps(ret)
    return HttpResponse(result)
Django 가 jquery select 2 를 검색 하 는 드 롭 다운 상 자 를 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Django 가 jquery select 2 를 검색 하 는 드 롭 다운 상자 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 도 많은 관심 을 가 져 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기