diff --git a/apps/note/api/views.py b/apps/note/api/views.py index 53fcaed67eb55a07ff4ba16634c302be2eae4773..488e0d07a11f317a3745d8ce34241a972149c895 100644 --- a/apps/note/api/views.py +++ b/apps/note/api/views.py @@ -82,23 +82,24 @@ class AliasViewSet(ReadProtectedModelViewSet): :return: The filtered set of requested aliases """ - queryset = super().get_queryset() + queryset = super().get_queryset().distinct() - alias = self.request.query_params.get("alias", ".*") - queryset = queryset.filter( - name__iregex="^" + alias - ).union( - queryset.filter( - Q(normalized_name__iregex="^" + Alias.normalize(alias)) - & ~Q(name__iregex="^" + alias) - ), - all=True).union( - queryset.filter( - Q(normalized_name__iregex="^" + alias.lower()) - & ~Q(normalized_name__iregex="^" + Alias.normalize(alias)) - & ~Q(name__iregex="^" + alias) - ), - all=True) + alias = self.request.query_params.get("alias", None) + if alias: + queryset = queryset.filter( + name__iregex="^" + alias + ).union( + queryset.filter( + Q(normalized_name__iregex="^" + Alias.normalize(alias)) + & ~Q(name__iregex="^" + alias) + ), + all=True).union( + queryset.filter( + Q(normalized_name__iregex="^" + alias.lower()) + & ~Q(normalized_name__iregex="^" + Alias.normalize(alias)) + & ~Q(name__iregex="^" + alias) + ), + all=True) return queryset