diff --git a/InvenTree/InvenTree/models.py b/InvenTree/InvenTree/models.py
index eeee6378c6..e95b763c05 100644
--- a/InvenTree/InvenTree/models.py
+++ b/InvenTree/InvenTree/models.py
@@ -80,7 +80,7 @@ class InvenTreeTree(models.Model):
 
         return unique
 
-    def getUniqueChildren(self, unique=None):
+    def getUniqueChildren(self, unique=None, include_self=False):
         """ Return a flat set of all child items that exist under this node.
         If any child items are repeated, the repetitions are omitted.
         """
@@ -88,6 +88,9 @@ class InvenTreeTree(models.Model):
         if unique is None:
             unique = set()
 
+        if include_self:
+            unique.add(self.id)
+
         if self.id in unique:
             return unique
 
diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py
index bf0555a216..64b08f06b5 100644
--- a/InvenTree/part/api.py
+++ b/InvenTree/part/api.py
@@ -110,8 +110,7 @@ class PartList(generics.ListCreateAPIView):
         if cat_id:
             try:
                 category = PartCategory.objects.get(pk=cat_id)
-                cats = [category.id]
-                cats += [cat for cat in category.getUniqueChildren()]
+                cats = category.getUniqueChildren(include_self=True)
                 parts_list = parts_list.filter(category__in=cats)
             except PartCategory.DoesNotExist:
                 pass