Media Management

DJ Press uses the built-in Django media management system that allows you to upload, manage, and use various types of media files in your content.

Overview

The Media management feature provides:

  • File uploads with automatic date-based organisation

  • Custom upload paths, configurable through the settings

  • Support for different media types (images, documents, audio, video, etc.)

  • Admin interface for managing uploaded files

  • Easy insertion of media into content using markdown syntax

  • Support for image alt text and descriptions for accessibility

Media Model

The Media model is designed to store information about uploaded files and handle various media types.

Media Types

DJ Press supports the following media types:

  • image: Image files (jpg, png, gif, etc.)

  • document: Document files (pdf, doc, txt, etc.)

  • audio: Audio files (mp3, wav, etc.)

  • video: Video files (mp4, mov, etc.)

  • other: Other file types

Key Fields

  • title: A descriptive title for the media file

  • file: The actual uploaded file

  • media_type: The type of media (image, document, audio, video, other)

  • alt_text: Alternative text for images (for accessibility)

  • description: A description of the media file

  • uploaded_by: The user who uploaded the file

  • date: The upload date and time

  • uploaded_at: The upload date and time

  • updated_at: The last modification date and time

Configuration

Media Upload Path

You can configure the upload path for media files using the MEDIA_UPLOAD_PATH setting:

DJPRESS_SETTINGS = {
    # ... other settings ...
    "MEDIA_UPLOAD_PATH": "djpress/{{ year }}/{{ month }}/{{ day }}",
}

This setting supports the following variables:

  • {{ year }}: The current year (e.g., 2025)

  • {{ month }}: The current month (e.g., 04)

  • {{ day }}: The current day (e.g., 29)

The default path is djpress/{{ year }}/{{ month }}/{{ day }}, which creates a directory structure like djpress/2025/04/29/.

Using Media in Content

Markdown Syntax

Once you’ve uploaded media files, you can use them in your content using markdown syntax:

Images

![Alt text](/media/path/to/image.jpg "Optional title")

Other Media

[File Title](/media/path/to/file.pdf)

Getting Markdown URLs

For convenience, the Media model provides a markdown_url property that generates the correct markdown syntax for the file, which you can copy directly from the admin interface:

  • Images: ![alt_text](/media/path/to/image.jpg "title")

  • Other files: [title](/media/path/to/file.pdf)

Admin Interface

The Media admin interface provides a user-friendly way to manage your media files:

Features

  • List view showing all media files with filters for type, date, and uploader

  • Search functionality for finding files by title, description, or alt text

  • Preview thumbnail for image files

  • Automatic capture of metadata (file size, dates)

  • Ready-to-use markdown syntax for easy embedding in content

Permissions

Media uploads and management follow Django’s permissions system:

  • Superusers and staff with appropriate permissions can upload and manage all media

  • The user who uploads a file is automatically set as the uploaded_by field

Best Practices

  1. Use Alt Text: Always provide descriptive alt text for images to improve accessibility

  2. Organise With Titles: Use clear, descriptive titles to make files easy to find

  3. Optimise Images: Optimise large images before uploading to improve page load times

  4. Use Appropriate Types: Select the correct media type when uploading files

  5. Consider File Size: Be mindful of file sizes, especially for images and videos