Tutorial¶
This tutorial will guide you through creating your first blog and podcast with Django Cast.
Your First Blog¶
After completing the Installation, let’s create your first blog.
Creating a Blog¶
Access the Wagtail Admin
Navigate to http://localhost:8000/cms/ and log in with your credentials.
Navigate to Pages
Click on “Pages” in the sidebar. You’ll see the page tree with your site’s root.
Add a Blog
Click “Add child page” next to the root page
Select “Blog” from the page type options
Fill in the required fields:
Title: Your blog’s name (e.g., “My Tech Blog”)
Slug: URL-friendly version (e.g., “tech-blog”)
Author: Your name
Email: Contact email
Description: Brief description of your blog
Configure Blog Settings
Comments enabled: Choose whether this blog permits comments
Template base dir: Choose a built-in theme (
bootstrap4orplain)
Publish
Click “Publish” to make your blog live
Your blog is now accessible at
http://localhost:8000/tech-blog/
Creating Your First Post¶
Navigate to Your Blog
In the page tree, find your blog and click on it.
Add a Post
Click “Add child page”
Select “Post” from the page type options
Fill in Post Details
Title: Your post title
Slug: URL slug (auto-generated from title)
Categories: Select or create categories
Tags: Add relevant tags
Add Content
The body field has two sections:
- Overview Section
Brief summary that appears on the blog index page
- Detail Section
Full article content that appears on the post page
For each section, you can add:
Paragraph: Rich text content, including
h2,h3, andh4headingsImage: Single responsive image
Gallery: Multiple images with lightbox
Code: Syntax-highlighted code blocks
Video: Embedded video files
Audio: Embedded audio with player
Embed: External content (YouTube, etc.)
django-cast no longer provides a standalone Heading block. Add headings inside a Paragraph block with Wagtail’s rich-text heading controls so the document level is explicit.
Add Media
To add an image:
Click the “+” button in a content section
Choose “Image”
Upload or select an existing image
Add alt text for accessibility
Preview and Publish
Use “Preview” to see how your post looks
Click “Publish” when ready
Your post is now live!
Your First Podcast¶
Django Cast makes it easy to create a podcast with full iTunes support.
Creating a Podcast¶
Add a Podcast Page
From the root page, click “Add child page”
Select “Podcast” from page types
Configure Podcast Settings
Basic Information:
Title: Your podcast name
Slug: URL slug for the podcast
Author: Podcast host name
Email: Contact email
Description: Podcast description
iTunes Settings:
iTunes Artwork: Upload 3000x3000px image
Publish Your Podcast
Click “Publish” to create your podcast page.
Creating Your First Episode¶
Navigate to Your Podcast
Find your podcast in the page tree.
Add an Episode
Click “Add child page”
Select “Episode” from page types
Episode Details
Title: Episode title
Podcast Audio: Upload your audio file; drafts may omit it, but publishing requires it
Keywords: Episode-specific keywords
Explicit: Episode content rating: - Yes: Mark the episode as explicit - No: Mark the episode as not explicit - Clean: Mark an edited or censored version as clean
Block: Check to prevent iTunes distribution
Add Show Notes
Use the body field to add:
Episode description (overview)
Detailed show notes (detail)
Links and resources
Embedded images or code
Upload Audio
Click “Choose audio” in Podcast Audio field
Upload your audio file (MP3, M4A, OGG, or OPUS)
The system will automatically extract duration
Each audio object can have multiple files in different formats
Add Chapters (Optional)
After publishing, you can add chapter marks:
Go to Settings → Audio in admin
Find your audio file
Add chapter marks with timestamps
Publish Episode
Review all settings
Click “Publish”
Episode appears on podcast page and in RSS feed
RSS Feed Setup¶
Your podcast RSS feeds are generated from the podcast slug for each audio
format. For a podcast whose slug is my-podcast, the URLs are:
MP3 Feed:
/my-podcast/feed/podcast/mp3/rss.xmlM4A Feed:
/my-podcast/feed/podcast/m4a/rss.xmlOGG Feed:
/my-podcast/feed/podcast/oga/rss.xmlOPUS Feed:
/my-podcast/feed/podcast/opus/rss.xml
Each feed contains episodes with audio files in the corresponding format. Submit your preferred feed URL to podcast directories like Apple Podcasts, Spotify, etc.
Working with Media¶
Images¶
Supported formats: JPEG, PNG, AVIF, WebP
Automatic optimization: Responsive images using picture element
Organization: Create collections for better management
Galleries¶
Click “+” and select “Gallery”
Select multiple images
Choose layout:
Default: Web component with client-side lightbox
HTMX: Server-side rendered lightbox
Audio¶
Formats: Upload in any format, provide multiple for compatibility
Player: Podlove Web Player with chapters and speed control
Transcripts: Add VTT or JSON transcripts for accessibility
Video¶
Upload: Browser-compatible formats (MP4, WebM)
No conversion: Upload videos in formats browsers can play
Embedding: Use video block in content
Tips and Tricks¶
Content Organization¶
Categories: Use for major topic areas
Tags: Use for specific topics
Theme Customization¶
Choose from the built-in themes (
bootstrap4andplain)Install new themes via PyPI
Select theme in blog’s “Template base dir” setting
Next Steps¶
Explore StreamField Blocks for advanced content
Learn about Templates / Themes for customization
Set up Comments for engagement
Configure Social Media integration
Deploy to production (see Deployment)