from rest_framework.decorators import api_view from rest_framework.response import Response from django.contrib.auth import get_user_model from django.contrib.staticfiles.templatetags.staticfiles import static from misago.conf import settings UserModel = get_user_model() @api_view() def mention_suggestions(request): suggestions = [] query = request.query_params.get('q', '').lower().strip()[:100] if query: queryset = UserModel.objects.filter( slug__startswith=query, is_active=True, ).order_by('slug')[:10] for user in queryset: try: avatar = user.avatars[-1]['url'] except IndexError: avatar = static(settings.MISAGO_BLANK_AVATAR) suggestions.append({ 'username': user.username, 'avatar': avatar, }) return Response(suggestions)