Tutorial Summary

Snippets are Wagtails way of re-using existing data. For example, being able to select a Blog Author (or multiple authors) instead of having to add a name, image and website for every blog author in every blog post you make; instead you can simply fill out a form once, and re-use the final data with a couple of clicks.

"Snippets are pieces of content which do not necessitate a full webpage to render."

Above is the line from the Wagtail Docs that describes a Snippet. It's accurate, but maybe a bit tricky to understand at first.

You can think of a Snippet like pieces of data that you can re-use. If you're familiar with the coding notion of functions (re-usable chunks of code), then you can think of a Snippet as a function for storing and retrieving data from the Wagtail Admin.

Some example where Snippets are useful:

  • Menus
  • Blog Authors
  • Blog Categories
  • Advertisements

In this video we'll be using Blog Authors as the the example. Here's a copy & paste example you can use:

"""Blog Author Snippet."""
from django.db import models
from wagtail.admin.edit_handlers import (
from wagtail.images.edit_handlers import ImageChooserPanel
from wagtail.snippets.models import register_snippet

#@register_snippet  # uncomment to use a decorator instead of a function
class BlogAuthor(models.Model):
    """Blog author for snippets."""

    name = models.CharField(max_length=100)
    website = models.URLField(blank=True, null=True)
    image = models.ForeignKey(

    panels = [
            heading="Name and Image",

    def __str__(self):
        """String repr of this class."""
        return self.name

    class Meta:  # noqa
        verbose_name = "Blog Author"
        verbose_name_plural = "Blog Authors"

The Git Commit

Videos not your thing? That's OK. Here's the link the full Git Commit so you can see what was added in this video at a glance.


Sign up for our newsletter

Get notified about new lessons :)

Our Sites