Fix filtering

This commit is contained in:
Iacopo Spalletti 2014-03-12 14:35:00 +01:00
commit 9999e6a622

View file

@ -4,6 +4,7 @@ from cms.utils import get_language_from_request
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.urlresolvers import resolve from django.core.urlresolvers import resolve
from django.db.models import Count from django.db.models import Count
from django.http import Http404
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import ListView, DetailView from django.views.generic import ListView, DetailView
from parler.utils import get_active_language_choices from parler.utils import get_active_language_choices
@ -16,7 +17,7 @@ class BaseBlogView(object):
def get_queryset(self): def get_queryset(self):
language = get_language_from_request(self.request) language = get_language_from_request(self.request)
manager = self.model._default_manager.language(language) manager = self.model._default_manager.translated(language)
if not self.request.user.is_staff: if not self.request.user.is_staff:
manager = manager.filter(publish=True) manager = manager.filter(publish=True)
return manager return manager
@ -45,10 +46,13 @@ class PostDetailView(BaseBlogView, DetailView):
slug_field = 'translations__slug' slug_field = 'translations__slug'
def get_object(self, queryset=None): def get_object(self, queryset=None):
qs = self.model._default_manager.get(**{ try:
'translations__language_code': get_language_from_request(self.request), qs = self.model._default_manager.get(**{
self.slug_field: self.kwargs.get(self.slug_url_kwarg, None) 'translations__language_code': get_language_from_request(self.request),
}) self.slug_field: self.kwargs.get(self.slug_url_kwarg, None)
})
except Post.DoesNotExist:
raise Http404()
return qs return qs