Django Cast¶
Just another blogging / podcasting package
Documentation¶
The full documentation is at https://django-cast.readthedocs.io.
Installation Screencast¶
Quickstart¶
Install Django Cast:
pip install django-cast
Add django-cast and some dependencies to your INSTALLED_APPS
:
INSTALLED_APPS = (
...
"imagekit",
"ckeditor",
"ckeditor_uploader"
"crispy_forms",
"django_filters",
"rest_framework",
"rest_framework.authtoken",
"filepond.apps.FilepondConfig",
"cast.apps.CastConfig",
"watson",
...
)
Add required settings:
# CKEditor
CKEDITOR_UPLOAD_PATH = "uploads/ckeditor/"
CKEDITOR_IMAGE_BACKEND = "pillow"
AWS_QUERYSTRING_AUTH = False
X_FRAME_OPTIONS = "SAMEORIGIN"
CKEDITOR_CONFIGS = {
"default": {
"removePlugins": "stylesheetparser",
"allowedContent": True,
"enterMode": 2,
},
}
# REST
REST_FRAMEWORK = {
# Use Django's standard django.contrib.auth permissions,
# or allow read-only access for unauthenticated users.
"DEFAULT_AUTHENTICATION_CLASSES": (
"rest_framework.authentication.SessionAuthentication",
"rest_framework.authentication.TokenAuthentication",
)
}
# django imagekit
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY="imagekit.cachefiles.strategies.Optimistic"
Add Django Cast’s URL patterns:
from django.urls import path, include
from rest_framework.documentation import include_docs_urls
from rest_framework.authtoken import views as authtokenviews
urlpatterns = [
...
# Cast urls
path("api/api-token-auth/", authtokenviews.obtain_auth_token),
path("docs/", include_docs_urls(title="API service")),
path("ckeditor/", include("ckeditor_uploader.urls")),
# Uploads
path("uploads/", include("filepond.urls", namespace="filepond")),
# Cast
path("cast/", include("cast.urls", namespace="cast")),
...
]
The api token auth urls and the docs urls are both necessary to provide api endpoints with the right namespace. The django-filepond app is used to dispatch uploads to the right media models.
Features¶
Support for responsive images / video / audio media objects
Use django template syntax for posts allowing you to use custom template tags for galleries etc. for example
Good looking file uploads via filepond
Chaptermarks for podcast Episodes
Running Tests¶
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate
(myenv) $ python runtests.py tests