Skip to main content

Wagtail Content Stream provides a StreamField of standard content types.

Project description

Wagtail Content Stream

An abstract Django model with a Wagtail StreamField named body with multiple blocks I use on a regular basis. This is geared towards developers who need to write examples with code in them. It's opinionated: very little HTML is allowed in the text block, forcing authors to create structured data. The following blocks are included in ContentStreamBlock:

  • Heading
  • Paragraph
  • Captioned Image
  • Embed
  • Table
  • Code Block

A secondary StreamBlock, ContentStreamBlockWithRawCode, also provides an additional block for injecting HTML, JS, and CSS code. Use with care, as this can really blow up your markup and is a potential code injection point!

Three pages types are provided out-of-the-box.

Example Usage

You will need to add wagtailcodeblock to your INSTALLED_APPS Django setting.

Basic Usage: a Title Field and Content Stream

First, create a page type in your

from wagtailcontentstream.models import ContentStreamPage, SectionContentStreamPage, ContentStreamPageWithRawCode

class StandardPage(ContentStreamPage):

class SectionStandardPage(SectionContentStreamPage):

class StandardPageWithRawCode(ContentStreamPageWithRawCode):

Then in your template:

{% load wagtailcore_tags %}

<h2>{{ page.title }}</h2>
{% include_block page.body %}

Extended Usage: Adding More Fields

from django.conf import settings
from django.db import models
from wagtail.admin.edit_handlers import FieldPanel
from wagtailcontentstream.models import ContentStreamPage

class StandardPage(ContentStreamPage):
    date = models.DateField("Post Date")
    authors = models.ManyToManyField(settings.AUTH_USER_MODEL)

    content_panels = [
    ] + ContentStreamPage.content_panels

Release Notes & Contributors

Project Maintainer

Download files

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

Source Distribution

wagtailcontentstream-1.0.0.tar.gz (7.4 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page