
Security News
ESLint Adds Official Support for Linting HTML
ESLint now supports HTML linting with 48 new rules, expanding its language plugin system to cover more of the modern web development stack.
django-media-explorer
Advanced tools
A Django application to manage your images, video links, embeds and slideshows.
Django Media Explorer
Installation
Install #######
::
pip install django-media-explorer
Update settings ###############
Add these to your INSTALLED_APPS settings
::
'rest_framework',
'micawber.contrib.mcdjango',
'media_explorer',
'ckeditor',
Add these to your urls.py
::
url("^ckeditor/", include("ckeditor.urls")),
url("^", include("media_explorer.urls")),
Copy and paste this code into the bottom of your settings.py file.
::
try:
from media_explorer.settings import *
except ImportError:
pass
The DME application will try to resize your images during your upload. If you do not want to resize your images then set the setting DME_RESIZE = False somewhere in your settings.py file (after the "media_explorer.settings" import).
If you use your own JQuery in your admin pages and you do not want the DME application JQuery to conflict with yours then set DME_INCLUDE_JQUERY = False (since v0.3.6).
Create tables #############
Run these migration commands to create your database tables.
::
python manage.py makemigrations
python manage.py migrate
How it works
Add the MediaImageField, MediaField and RichTextField fields to your model.
::
from django.db import models
from media_explorer.fields import MediaImageField, MediaField, RichTextField
class Blog(models.Model):
"""
Example Blog model
"""
title = models.CharField(max_length=150)
#Since v0.3.6
#This behaves exactly as Django's ImageField with following differences:
#1) You can add an optional max_upload_size=xxx to limit upload size
#2) After image is saved you can see it listed at http://YOUR-DJANGO-SITE-URL/media_explorer
#3) If the setting DME_RESIZE = True then image will be resized
my_image = MediaImageField(max_upload_size=5242880,upload_to="my_dir")
#Since v0.3.0
#If you do not provide a type then media can be image/video/gallery
lead_media = MediaField()
#Since v0.3.0
#Providing a type will restrict the element to this type
video = MediaField(type="video")
#Since v0.3.0
#You will see a CKEditor WYSIWYG with DME plugin
#NOTE: You cannot use more than one RichText field in a model
entry = RichTextField()
After you add media fields to your model you can add data via the admin page (See screenshot <https://s3.amazonaws.com/media.oxfamamerica.org/images/github/add_blog.png>
_ - the red-circled button is the DME plugin button. It will allow you to insert media elements into your WYSIWYG)
After you add media you can access them by going to http://YOUR-DJANGO-SITE-URL/media_explorer/ (See screenshot here <http://media.oxfamamerica.org.s3.amazonaws.com/images/github/dme-images.jpg>
_).
Go to https://github.com/oxfamamerica/django-media-explorer for more documentation on how to add images, videos and galleries programatically via the API and how to display media in your templates.
Go to https://github.com/oxfamamerica/media_explorer_example to download and run an example blog application.
Tests
Run this command to run all the DME tests.
::
python manage.py test media_explorer.tests
Or you can run the tests individually.
::
python manage.py test media_explorer.tests.elements.tests
python manage.py test media_explorer.tests.galleries.tests
python manage.py test media_explorer.tests.customfields.tests
FAQs
A Django application to manage your images, video links, embeds and slideshows.
We found that django-media-explorer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint now supports HTML linting with 48 new rules, expanding its language plugin system to cover more of the modern web development stack.
Security News
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.
Security News
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.