Skip to main content

The django application allows to add title, keywords and description meta tags to site's pages.

Project description

https://secure.travis-ci.org/whitespy/django-simple-metatags.svg https://badge.fury.io/py/django-simple-metatags.svg https://codecov.io/gh/whitespy/django-simple-metatags/branch/master/graph/badge.svg

The django application allows to add title, keywords and description meta tags to site’s pages.

Features

  • Attaching meta tags to model instances
  • Attaching meta tags to URL paths
  • Caching
  • Integration with the django-modeltranslation application

Installation

pip install django-simple-metatags

Configuration

  1. Add ‘metatags’ to your INSTALLED_APPS:
INSTALLED_APPS = (
    # ...
    'metatags',
)
  1. Run the migrate management command:
python manage.py migrate metatags
  1. Customize model admin classes:

To be able to attach meta tags to a model instance you should slightly adjust a model admin class.

The first way by adding the MetaTagInline class in inlines sequence:

from metatags.admin import MetaTagInline


class CustomModelAdmin(admin.ModelAdmin):
    # ...
    inlines = (MetaTagInline,)

The second way by using MetaTagAbleMixin:

from metatags.admin import MetaTagAbleMixin


class CustomModelAdmin(MetaTagAbleMixin, admin.ModelAdmin):
    # ...

The third and way by using MetaTagAbleModelAdmin:

from metatags.admin import MetaTagAbleModelAdmin


class CustomModelAdmin(MetaTagAbleModelAdmin):
    # ...

Warning

Meta tags can be attached only to models that has auto-incrementing or positive integer primary key.

Note

Also django-simple-metatags application has an own model admin class that allows to attach meta tags to URL paths.

  1. Load the metatags template library and add the include_metatags template tag in template.

Add the include_metatags template tag with the model_instance argument to use meta tags attached to a model instance.

{% load metatags %}
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    {% include_metatags object default_title='Foo' default_keywords='Foo, bar, baz' %}
</head>

Note

The model_instance attribute is just an instance of arbitrary model like User, FlatPage, etc. with attached via Django’s admin meta tags. A variable than contains a model instance must be included in the template context.

Add the include_metatags without the model_instance argument to use meta tags attached to an URL path.

{% load metatags %}
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    {% include_metatags default_title='Foo' default_keywords='Foo, bar, baz' %}
</head>

Arguments of include_metatags template tag

All arguments are optional.

model_instance - A model instance with attached meta tags. Defaults to None.

default_title - A default title of page. Defaults to ‘’.

default_keywords - Default keywords of page. Defaults to ‘’.

default_description - Default description of page. Defaults to ‘’.

Caching

Since version 2.0.0 application gained caching support. See settings section for more details.

Settings

METATAGS_CACHE_ENABLED - Enables meta tags caching to minimize database access. Defaults to False.

Note

Django’s caching system must be configured.

METATAGS_CACHE_ALIAS - A name of cache backend used by meta tags caching feature. Defaults to default.

METATAGS_CACHE_TIMEOUT - Timeout in seconds to use for meta tags caching. If value set up to None cached meta tags never expire. Defaults to None.

Note

Value of 0 causes meta tags to immediately expire.

Management command

resetmetatagscache - Removes all cached meta tags.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for django-simple-metatags, version 2.0.0
Filename, size File type Python version Upload date Hashes
Filename, size django_simple_metatags-2.0.0-py3-none-any.whl (20.3 kB) File type Wheel Python version 3.8 Upload date Hashes View
Filename, size django-simple-metatags-2.0.0.tar.gz (12.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page