skip to navigation
skip to content

Not Logged In

django-simple-seo 0.2.0

Simple SEO Module for Django

Latest Version: 1.0.3

Simple cache backend for Django. Inspired by django-seo ( https://github.com/willhardy/django-seo ) but found it quite complex for the simple functionality it was intended for.

django-simple-seo aims to attach a model to your views with just 4 simple lines of code and everything configured by the admin.

What’s in django-simple-seo

  • Python 2.7, 3.2, 3.3, 3.4 and Django 1.4, 1.5 and 1.6
  • View Autodiscovering
  • Pure Django Models and Django Fields implementation, no metaclasses in action
  • Don’t reinvent the wheel: as long as they are django models you can use the goodies out there
  • i18n with django-vinaigrette, django-linuo, django-modeltranslation, etc.
  • Cache can be activated internally, but can also be used with johnny-cache, django-cache-machine, etc.
  • Easily extendible as far as it’s all about simple django models and fields
  • Support for UrlFields and ImageFields in admin
  • Test app included (.testapp)

What’s NOT in django-simple-seo

  • Only implements view based backend. Maybe in future releases it will include Model and Path backend like in DjangoSeo.

Installation

You can use pip like this:

$ pip install django-simple-seo

You can use pip with git master code instead of pypi version:

$ pip install git+https://github.com/danigosa/django-simple-seo.git

1. Create your SEO Model

Create a model subclassing the classes BaseMetada(title, author, description, keywords), OpenGraphMetada(includes facebook tags) or AllMetadata(Facebook and Twitter)

from simple_seo.models import AllMetadata
from simple_seo import register


class MyMetadata(AllMetadata):
    """
    My Seo Model
    """

# Register SEO Model
register(MyMetadata)

2. Synchronize your DB

Synchronize your database with syncdb or migrate depending on your case:

$ ./manage.py syncdb

3. Register your model for administration

Add this lines to your admin.py:

from simple_seo.admin import BaseMetadataAdmin
from django.contrib import admin
from .models import MyMetadata


class MyMetadataAdmin(BaseMetadataAdmin):
    pass

admin.site.register(MyMetadata, MyMetadataAdmin)

4. Add metadata for your views

Your views are autodiscovered for your convenience, create a metadata object for every view you want to administer

5. Add metadata to your template

Just include this template tag in your <head> section:

{% load simple_seo %}
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    {% view_metadata %}
</head>
<body>
TEST
</body>
</html>

6. Extend/Override default behaviour

“I prefer to have images as URLs, not static files in my server”

Just override og_image attribute. You can find all base models in simple_seo.models, and all tag fields in simple_seo.fields:

from simple_seo.fields import URLMetaTagField, MetaTagField
from simple_seo.models import AllMetadata
from simple_seo import register


class MyMetadata(AllMetadata):
    """
    My Seo Model
    """
    og_image = URLMetaTagField(name="og:image")  # Overrides default og:image field
    another_meta_tag = MetaTagField(name="myvariable", max_length="25")  #  Creates a new custom meta tag for the views

# Register SEO Model
register(MyMetadata)

7. Sample App

You have a complete sample app in testapp module in this repository.

Changelog

Version 0.2

  • Added support for namespaced views
  • Added support for ImageField based Image Metatags (og:image, twitter:image)
  • Added support for UrlField based URL Metatags (og:url, twitter:url)
  • Added more base classes to ease setup
 
File Type Py Version Uploaded on Size
django-simple-seo-0.2.0.tar.gz (md5) Source 2014-08-07 7KB
  • Downloads (All Versions):
  • 15 downloads in the last day
  • 253 downloads in the last week
  • 1034 downloads in the last month