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 models.py:

from wagtailcontentstream.models import ContentStreamPage, SectionContentStreamPage, ContentStreamPageWithRawCode

class StandardPage(ContentStreamPage):
    pass

class SectionStandardPage(SectionContentStreamPage):
    pass

class StandardPageWithRawCode(ContentStreamPageWithRawCode):
    pass

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 = [
        FieldPanel('date'),
        FieldPanel('authors'),
    ] + ContentStreamPage.content_panels

Release Notes & Contributors

Project Maintainer

Project details


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 details)

Uploaded Source

Built Distribution

wagtailcontentstream-1.0.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file wagtailcontentstream-1.0.0.tar.gz.

File metadata

  • Download URL: wagtailcontentstream-1.0.0.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.3

File hashes

Hashes for wagtailcontentstream-1.0.0.tar.gz
Algorithm Hash digest
SHA256 460ef53b00dd7273c821dc848cecf00af71473f86d36ec3a87bc1e2351fc5fa1
MD5 a5b5ca4d858da6d7640152f5bf72e14f
BLAKE2b-256 21a9caaf3a4c0f15586533e14f1bf851dd907865a2d24c5e4b3e63b9df2f9aa5

See more details on using hashes here.

File details

Details for the file wagtailcontentstream-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: wagtailcontentstream-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.3

File hashes

Hashes for wagtailcontentstream-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 681449e95f86bde99cd1786d289174a746311b2f4176b8b03e72bb65b9d83b1b
MD5 648cf30429916b99a5628bb12fdb2e5d
BLAKE2b-256 77f9104b4fd90ffd76ddc063c7c77876a95033ce8334d8dfa64f321e2db5edc3

See more details on using hashes here.

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