autocomplete.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:ecs 作者: ecs-org 项目源码 文件源码
def autocomplete(request, queryset_name=None):
    term = request.GET.get('term', '')

    USER_QUERY = {
        'users': Q(),
        'internal-users': Q(profile__is_internal=True),
        'pki-users':
            Q(profile__is_internal=True) | Q(profile__is_omniscient_member=True),
    }

    users = (User.objects
        .filter(USER_QUERY[queryset_name], is_active=True)
        .select_related('profile')
        .order_by('first_name', 'last_name', 'email')
    )

    if term:
        q = Q()
        for bit in term.split():
            q &= (
                Q(first_name__icontains=bit) |
                Q(last_name__icontains=bit) |
                Q(email__icontains=bit) |
                Q(profile__title__icontains=bit)
            )
        users = users.filter(q)

    results = [{'id': u.id, 'text': '{} [{}]'.format(u, u.email)} for u in users]
    return JsonResponse({'results': results})
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号