Admin interface can be super slow
Some pages on the admin interface takes ages (like, 10 seconds) to render.. 

Need to profile them to work out where the inefficiencies are.
diff --git a/InvenTree/company/api.py b/InvenTree/company/api.py
index 2c05c98d9..76b08ec27 100644
--- a/InvenTree/company/api.py
+++ b/InvenTree/company/api.py
@@ -263,11 +263,7 @@ class SupplierPartList(generics.ListCreateAPIView):
     - POST: Create a new SupplierPart object
     """
 
-    queryset = SupplierPart.objects.all().prefetch_related(
-        'part',
-        'supplier',
-        'manufacturer_part__manufacturer',
-    )
+    queryset = SupplierPart.objects.all()
 
     def get_queryset(self):
 
diff --git a/InvenTree/company/models.py b/InvenTree/company/models.py
index 378653131..778e00cde 100644
--- a/InvenTree/company/models.py
+++ b/InvenTree/company/models.py
@@ -430,6 +430,22 @@ class ManufacturerPartParameter(models.Model):
     )
 
 
+class SupplierPartManager(models.Manager):
+    """ Define custom SupplierPart objects manager
+
+        The main purpose of this manager is to improve database hit as the
+        SupplierPart model involves A LOT of foreign keys lookups
+    """
+
+    def get_queryset(self):
+        # Always prefetch related models
+        return super().get_queryset().prefetch_related(
+            'part',
+            'supplier',
+            'manufacturer_part__manufacturer',
+        )
+
+
 class SupplierPart(models.Model):
     """ Represents a unique part as provided by a Supplier
     Each SupplierPart is identified by a SKU (Supplier Part Number)
@@ -450,6 +466,8 @@ class SupplierPart(models.Model):
         packaging: packaging that the part is supplied in, e.g. "Reel"
     """
 
+    objects = SupplierPartManager()
+
     @staticmethod
     def get_api_url():
         return reverse('api-supplier-part-list')
diff --git a/InvenTree/order/admin.py b/InvenTree/order/admin.py
index 1e7b20e5a..5d843fc62 100644
--- a/InvenTree/order/admin.py
+++ b/InvenTree/order/admin.py
@@ -15,6 +15,7 @@ from .models import SalesOrderAllocation
 
 class PurchaseOrderLineItemInlineAdmin(admin.StackedInline):
     model = PurchaseOrderLineItem
+    extra = 0
 
 
 class PurchaseOrderAdmin(ImportExportModelAdmin):
['InvenTree/company/models.py', 'InvenTree/order/admin.py', 'InvenTree/company/api.py']