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