Djangoはjquery select 2の捜索の引き落とし枠を実現します。


最近ウェブアプリケーションを開発するには、検索機能付きのフレームダウンが必要です。ネット上のdjangoバッグ、django-select 2-formsを試したことがあります。これは強力な機能を持つpacketsです。残念ながら、私の開発環境をサポートしてくれませんでした。これは、フロントエンドの検索ボックスに入力された文字に基づいて、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の検索フレームの内容を実現します。以前の文章を検索したり、下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。