From 1da8518acb345c49a1417aeedb439065604ab88e Mon Sep 17 00:00:00 2001
From: Calum Mackervoy <c.mackervoy@gmail.com>
Date: Sun, 27 Sep 2020 09:43:53 +0000
Subject: [PATCH] bugfix: reinstating DjangoLDP custom viewset code

---
 djangoldp/views.py | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/djangoldp/views.py b/djangoldp/views.py
index ace73e44..2837279d 100644
--- a/djangoldp/views.py
+++ b/djangoldp/views.py
@@ -336,7 +336,19 @@ class LDPViewSetGenerator(ModelViewSet):
 
         # append nested fields to the urls list
         for field in kwargs.get('nested_fields') or cls.nested_fields:
-            urls.append(re_path('^' + detail_expr + field + '/', cls.nested_urls(field, **kwargs)))
+            # the nested property may have a custom viewset defined
+            try:
+                nested_model = kwargs['model']._meta.get_field(field).related_model
+            except FieldDoesNotExist:
+                nested_model = getattr(kwargs['model'], field).field.model
+
+            if hasattr(nested_model, 'get_view_set'):
+                kwargs['view_set'] = nested_model.get_view_set()
+                urls_fct = kwargs['view_set'].nested_urls  # our custom view_set may override nested_urls
+            else:
+                urls_fct = cls.nested_urls
+
+            urls.append(re_path('^' + detail_expr + field + '/', urls_fct(field, **kwargs)))
 
         return include(urls)
 
-- 
GitLab