diff --git a/awx/api/filters.py b/awx/api/filters.py index bc25acb4ed..bf1f356e68 100644 --- a/awx/api/filters.py +++ b/awx/api/filters.py @@ -277,12 +277,6 @@ class OrderByBackend(BaseFilterBackend): if field not in ('type', '-type'): new_order_by.append(field) queryset = queryset.order_by(*new_order_by) - # Fetch the first result to run the query, otherwise we don't - # always catch the FieldError for invalid field names. - try: - queryset[0] - except IndexError: - pass return queryset except FieldError, e: # Return a 400 for invalid field names. diff --git a/awx/api/views.py b/awx/api/views.py index 953708fa90..b7c39ae0ed 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -15,6 +15,7 @@ import sys from django.conf import settings from django.contrib.auth.models import User from django.core.urlresolvers import reverse +from django.core.exceptions import FieldError from django.db.models import Q, Count, Sum from django.db import IntegrityError, transaction from django.shortcuts import get_object_or_404 @@ -62,6 +63,8 @@ def api_exception_handler(exc): ''' if isinstance(exc, IntegrityError): exc = ParseError(exc.args[0]) + if isinstance(exc, FieldError): + exc = ParseError(exc.args[0]) return exception_handler(exc)