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)