У меня возникают проблемы с набором запросов в Django. К сожалению, я не могу использовать Django REST Framework, созданную в разбивке на страницы, потому что он добавляет ненужные поля JSON, такие как «next», «previous» и «count», поэтому я хотел ограничить использование опции [: 10] в наборе запросов.Queryset Невозможно изменить порядок запроса после того, как был сделан фрагмент
В моей попытке ниже, я получаю сообщение об ошибке: Queryset Cannot reorder a query once a slice has been taken.
class LocationsViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = serializers.LocationSerializer
ordering = ('location_name',)
def get_queryset(self):
queryset = models.GeonamesLocation.objects.all()
name_prefix = self.request.QUERY_PARAMS.get('name_prefix', None)
if name_prefix is not None:
if len(name_prefix) < 3:
raise exceptions.ParseError("'name_prefix' must consist of at least 2 characters")
queryset = queryset.filter(location_name__icontains = name_prefix).order_by('location_name', 'geonames_country', 'geonames_region')[:10]
return queryset
Я понимаю, почему я получаю эту ошибку, если я применил [:10]
, прежде чем я сделал order_by, но так как я делаю это после того, почему он дал бы мне эту ошибку?
Спасибо, Все