2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-02 03:30:54 +00:00

Improve speed of BomItem API queries

- Including the pricing information takes absolutely ages, takes too long!!
This commit is contained in:
Oliver Walters
2020-08-15 21:52:32 +10:00
parent e1a8772af6
commit f1373e3bea
2 changed files with 23 additions and 2 deletions

View File

@ -603,7 +603,20 @@ class BomList(generics.ListCreateAPIView):
"""
serializer_class = part_serializers.BomItemSerializer
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
serializer = self.get_serializer(queryset, many=True)
data = serializer.data
if request.is_ajax():
return JsonResponse(data, safe=False)
else:
return Response(data)
def get_serializer(self, *args, **kwargs):
# Do we wish to include extra detail?
@ -622,8 +635,10 @@ class BomList(generics.ListCreateAPIView):
return self.serializer_class(*args, **kwargs)
def get_queryset(self):
def get_queryset(self, *args, **kwargs):
queryset = BomItem.objects.all()
queryset = self.get_serializer_class().setup_eager_loading(queryset)
return queryset