Just another blogging / podcasting package
The full documentation is at https://django-cast.readthedocs.io.
Install Django Cast:
pip install django-cast
Add django-cast and some dependencies to your INSTALLED_APPS
:
INSTALLED_APPS = (
...
"imagekit",
"ckeditor",
"ckeditor_uploader",
"rest_framework.authtoken",
"filepond.apps.FilepondConfig",
"cast.apps.CastConfig",
...
)
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
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.
- 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
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate
(myenv) $ python runtests.py tests
Tools used in rendering this package: