django-mp-seo

Django seo app


Keywords
django, seo
License
MIT
Install
pip install django-mp-seo==9.0.3

Documentation

Install:

pip install django-mp-seo

settings.py:

from seo import SeoAppSettings
 
 
class CommonSettings(
        ...
        SeoAppSettings,
        BaseSettings):
    pass

urls.py

from seo.urls import seo_urlpatterns
 
urlpatterns = [
    ...
] + seo_urlpatterns

core/sitemaps.py

 
from django.urls import reverse
 
from seo.sitemaps import Sitemap
 
 
class CommonSitemap(Sitemap):
 
    patterns = [
        'example:example'
    ]
 
    def get_extra_urls(self):

        for obj in Example.objects.all():
            yield reverse(
                'example:example', args=[
                    obj.slug, obj.id
                ]
            )

templates/sitemap.html

 
{% extends 'sitemap.html' %}
 
{% load i18n %}
 
 
{% block items %}
 
    <li>
        <a href="{% url 'example:example' %}">
            {% trans 'Example' %}
        </a>
    </li>
 
{% endblock %}

templates/wrapper.html

{% load ... seo %}
 
<!DOCTYPE html>
<html lang="en">
 
    <head>
 
        <title>{% block meta_title %}{% get_meta_tag 'title' config.default_title %}{% endblock %}</title>
 
        {% get_meta_tag 'charset' %}
        {% get_meta_tag 'keywords' %}
        {% get_meta_tag 'description' %}
        {% get_meta_tag 'robots' %}
        {% get_meta_tag 'og:image' '/static/img/site-logo.png' %}
 
        {% get_favicon_tag %}
        {% get_viewport_tag %}
        {% get_language_meta_tags %}
        
        ...
 
    </head>
 
    <body {% block body_attrs %}{% endblock %}>
 
        {% block body %}
 
            {% block header %}{% endblock %}
 
            {% block wrapper %}{% endblock %}
 
            {% block footer %}{% endblock %}
 
        {% endblock %}

    </body>
 
    {% block js %}
     
        ...
 
        {% sitemetrics %}
 
    {% endblock %}
 
</html>

Run migrations:

python manage.py migrate