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