diff --git a/newsbox/views.py b/newsbox/views.py index cc9f6a7b008121e53ae93df0e09c147e06515a62..871dc7bbb9d2f049802052ff46279fbc4f7cb136 100644 --- a/newsbox/views.py +++ b/newsbox/views.py @@ -89,9 +89,9 @@ class NewsboxDetailView(DateDetailView): context['object'] = context['news'] return context - def get_object(self): + def get_object(self, queryset=None): #Â We check user permission - obj = super(NewsboxDetailView, self).get_object() + obj = super(NewsboxDetailView, self).get_object(queryset) if( not obj.is_published() and not obj.has_change_permission(self.request) diff --git a/newsbox_i18n/views.py b/newsbox_i18n/views.py index 5a5cb3ae3e111417684621030549551b26cfce8b..26a8c2b5f9d122ffda55d3dbc0378f86f58621f4 100644 --- a/newsbox_i18n/views.py +++ b/newsbox_i18n/views.py @@ -17,12 +17,18 @@ class NewsboxI18NDetailView(NewsboxDetailView): slug_field = "translations__newsbox_slug" - def get_queryset(self): + def get_object(self, queryset=None): """ As slug_field is translated, we need to use translation aware queryset. """ + if not queryset: + queryset = self.get_queryset() language = get_language() - queryset = super(NewsboxI18NDetailView, self).get_queryset() - queryset = queryset.translated(language, newsbox_slug=self.kwargs[self.slug_url_kwarg]) - return queryset + obj = queryset.translated(language, newsbox_slug=self.kwargs[self.slug_url_kwarg]).get() + if( + not obj.is_published() + and not obj.has_change_permission(self.request) + ): + raise Http404 + return obj