AA
Size: a a a
AA
PK
AA
AA
AA
AA
DT
PK
AA
AA
DT
AA
S
O
AA
def post_list(request, tag_slug=None):
object_list = Post.published.all()
tag = None
if tag_slug:
tag = get_object_or_404(Tag, slug=tag_slug)
object_list = object_list.filter(tags__in=[tag])
paginator = Paginator(object_list, 3) # 3 posts in each page
page = request.GET.get('page')
try:
posts = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer deliver the first page
posts = paginator.page(1)
except EmptyPage:
# If page is out of range deliver last page of results
posts = paginator.page(paginator.num_pages)
return render(request, 'blog/post/list.html', {'page': page,
'posts': posts,
'tag': tag})
AA
class PostListView(generic.ListView):
"""Page with all published posts."""
queryset = Post.objects.filter(status='PUBLISHED')
paginate_by = 5
class PostDetailView(generic.DetailView):
"""Separate post page. Also returns similar posts by tags."""
model = Post
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['similar_posts'] = self.object.tags.similar_objects()[:4]
return context
DT
AA
DT
class PostListView(generic.ListView):
"""Page with all published posts."""
queryset = Post.objects.filter(status='PUBLISHED')
paginate_by = 5
class PostDetailView(generic.DetailView):
"""Separate post page. Also returns similar posts by tags."""
model = Post
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['similar_posts'] = self.object.tags.similar_objects()[:4]
return context
AA