diff --git a/djangoldp/__init__.py b/djangoldp/__init__.py index 9d420347f01415d00dcb6df4a56e8f7f8b84ba0a..28986e6bfb43a7e41dc96888b366b13719ea1540 100644 --- a/djangoldp/__init__.py +++ b/djangoldp/__init__.py @@ -5,4 +5,4 @@ __version__ = '0.0.0' options.DEFAULT_NAMES += ( 'lookup_field', 'rdf_type', 'rdf_context', 'auto_author', 'owner_field', 'owner_urlid_field', 'view_set', 'container_path', 'permission_classes', 'serializer_fields', 'serializer_fields_exclude', 'empty_containers', - 'nested_fields', 'depth', 'permission_roles', 'inherit_permissions', 'public_field', 'static_version', 'static_params', 'active_field') + 'nested_fields', 'depth', 'permission_roles', 'inherit_permissions', 'public_field', 'static_version', 'static_params', 'active_field', 'disable_url') diff --git a/djangoldp/models.py b/djangoldp/models.py index a3df16ca05706568305fec98ad84190c4c03196e..53136d4c730aa54b65a4fde0f41becfa2d8ee3af 100644 --- a/djangoldp/models.py +++ b/djangoldp/models.py @@ -267,6 +267,7 @@ class Activity(Model): class Meta(Model.Meta): container_path = "activities" rdf_type = 'as:Activity' + disable_url = True def to_activitystream(self): return json.loads(self.payload) @@ -284,6 +285,9 @@ class ScheduledActivity(Activity): self.is_finished = False super(ScheduledActivity, self).save(*args, **kwargs) + class Meta(Model.Meta): + disable_url = True + class Follower(Model): '''Models a subscription on a model. When the model is saved, an Update activity will be sent to the inbox''' @@ -294,6 +298,9 @@ class Follower(Model): def __str__(self): return 'Inbox ' + str(self.inbox) + ' on ' + str(self.object) + class Meta(Model.Meta): + disable_url = True + class DynamicNestedField: ''' Used to define a method as a nested_field. diff --git a/djangoldp/urls.py b/djangoldp/urls.py index defa166bed99aac2c0c7a28aa4b2258671703b6a..a57ed80cb517a45934a253c61130832f778453e7 100644 --- a/djangoldp/urls.py +++ b/djangoldp/urls.py @@ -69,13 +69,15 @@ for model in get_all_non_abstract_subclasses(Model): model_path = __clean_path(model.get_container_path()) # urls_fct will be a method which generates urls for a ViewSet (defined in LDPViewSetGenerator) urls_fct = getattr(model, 'view_set', LDPViewSet).urls - urlpatterns.append(path('' + model_path, - urls_fct(model=model, - lookup_field=getattr(model._meta, 'lookup_field', 'pk'), - permission_classes=getattr(model._meta, 'permission_classes', []), - fields=getattr(model._meta, 'serializer_fields', []), - nested_fields=getattr(model._meta, 'nested_fields', []) - ))) + disable_url = getattr(model._meta, 'disable_url', False) + if not disable_url: + urlpatterns.append(path('' + model_path, + urls_fct(model=model, + lookup_field=getattr(model._meta, 'lookup_field', 'pk'), + permission_classes=getattr(model._meta, 'permission_classes', []), + fields=getattr(model._meta, 'serializer_fields', []), + nested_fields=getattr(model._meta, 'nested_fields', []) + ))) # NOTE: this route will be ignored if a custom (subclass of Model) user model is used, or it is registered by a package # Django matches the first url it finds for a given path