Add canonical url
This commit is contained in:
parent
e1cbc3a7fb
commit
1928623ea8
2 changed files with 33 additions and 3 deletions
|
@ -3,6 +3,7 @@ from django.core.cache import cache
|
|||
from django.core.paginator import Paginator
|
||||
from django.db.models import Count, Q, Sum
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.urls import reverse
|
||||
from django.views.generic import DetailView, ListView, TemplateView
|
||||
|
||||
from .models import Album, Photo, Redir
|
||||
|
@ -32,6 +33,18 @@ class AlbumsList(ListView):
|
|||
cache.set(key, queryset, 60 * 5)
|
||||
|
||||
return queryset
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
page = int(self.request.GET.get('page', 1))
|
||||
|
||||
# Canonical_url
|
||||
canonical_url = self.request.build_absolute_uri(reverse('gallery:albums_url'))
|
||||
if page > 1:
|
||||
canonical_url += f'?page={page}'
|
||||
context['canonical_url'] = canonical_url
|
||||
|
||||
return context
|
||||
|
||||
|
||||
class AlbumDetail(DetailView):
|
||||
|
@ -50,9 +63,16 @@ class AlbumDetail(DetailView):
|
|||
paginator = Paginator(photos, 30)
|
||||
page_obj = paginator.get_page(self.request.GET.get('page'))
|
||||
|
||||
# Canonical_url
|
||||
page = int(self.request.GET.get('page', 1))
|
||||
canonical_url = self.request.build_absolute_uri(self.object.get_absolute_url())
|
||||
if page > 1:
|
||||
canonical_url += f'?page={page}'
|
||||
|
||||
context.update({
|
||||
'photos': page_obj.object_list,
|
||||
'page_obj': page_obj
|
||||
'page_obj': page_obj,
|
||||
'canonical_url': canonical_url,
|
||||
})
|
||||
return context
|
||||
|
||||
|
@ -75,6 +95,7 @@ class PhotosList(ListView):
|
|||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['order'] = self.request.GET.get('order', 'latest')
|
||||
context['canonical_url'] = self.request.build_absolute_uri(reverse('gallery:photos_url'))
|
||||
return context
|
||||
|
||||
|
||||
|
@ -101,7 +122,8 @@ class PhotoDetail(DetailView):
|
|||
context = super().get_context_data(**kwargs)
|
||||
context.update({
|
||||
"next": self.object.get_next(),
|
||||
"prev": self.object.get_prev()
|
||||
"prev": self.object.get_prev(),
|
||||
"canonical_url": self.request.build_absolute_uri(self.object.get_absolute_url()),
|
||||
})
|
||||
return context
|
||||
|
||||
|
@ -144,7 +166,8 @@ class Search(TemplateView):
|
|||
'results': page_obj.object_list,
|
||||
'page_obj': page_obj,
|
||||
'paginator': paginator,
|
||||
'is_paginated': page_obj.has_other_pages()
|
||||
'is_paginated': page_obj.has_other_pages(),
|
||||
'canonical_url': self.request.build_absolute_uri(reverse('gallery:search_url'))
|
||||
})
|
||||
return context
|
||||
|
||||
|
@ -152,6 +175,10 @@ class Search(TemplateView):
|
|||
class About(TemplateView):
|
||||
"""Static about page."""
|
||||
template_name = "gallery/about.html"
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['canonical_url'] = self.request.build_absolute_uri(reverse('gallery:about_url'))
|
||||
return context
|
||||
|
||||
|
||||
def redirect_to_album(request, redir_path):
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="{{ site_config.site_head_description }}">
|
||||
<title>{{ site_config.site_head_title }} : {% block title %}{% endblock %}</title>
|
||||
{% if canonical_url %}
|
||||
<link rel="canonical" href="{{ canonical_url }}">
|
||||
{% endif %}
|
||||
<!-- UIkit CSS -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/uikit@3.23.6/dist/css/uikit.min.css" />
|
||||
<!-- Muistox CSS -->
|
||||
|
|
Loading…
Add table
Reference in a new issue