From: Guillaume Pellerin Date: Mon, 29 Aug 2016 15:36:32 +0000 (+0200) Subject: Add custom displayble url X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=03cbbf9d62ba0cd564552d1a8ad8f8c14e61ddae;p=mezzo.git Add custom displayble url --- diff --git a/app/organization/core/models.py b/app/organization/core/models.py index c77628b8..9bae0c5c 100644 --- a/app/organization/core/models.py +++ b/app/organization/core/models.py @@ -184,6 +184,10 @@ class CustomDisplayable(Displayable): class Meta: verbose_name = _('custom displayable') + def get_absolute_url(self): + return reverse("organization-displayable", kwargs={"slug": self.slug}) + + class DisplayableBlock(Block): diff --git a/app/organization/core/urls.py b/app/organization/core/urls.py index db08f17a..da6317a1 100644 --- a/app/organization/core/urls.py +++ b/app/organization/core/urls.py @@ -7,5 +7,8 @@ from django.conf.urls.i18n import i18n_patterns from mezzanine.core.views import direct_to_template from mezzanine.conf import settings +from organization.core.views import * + urlpatterns = [ + url(r'^displayable/(?P.*)/$', CustomDisplayableView.as_view(), name="organization-displayable"), ] diff --git a/app/organization/core/views.py b/app/organization/core/views.py index a0d7ec19..2494d8a9 100644 --- a/app/organization/core/views.py +++ b/app/organization/core/views.py @@ -3,8 +3,16 @@ from django.http import Http404 from django.views.generic.base import View from django.views.generic import DetailView, ListView, TemplateView +from organization.core.models import * + + class SlugMixin(object): def get_object(self): objects = self.model.objects.all() return get_object_or_404(objects, slug=self.kwargs['slug']) + + +class CustomDisplayableView(SlugMixin, DetailView): + + model = CustomDisplayable