diff --git a/djangoldp/views.py b/djangoldp/views.py index ace73e4408c0284aaf3414ad91e24c0e01fd5966..2837279d38055ee3a7e3081d908e568ce32f4e74 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)