django-conman

A lightweight CMS for django


Keywords
django, content-management, python-3
License
BSD-3-Clause
Install
pip install django-conman==0.1.1

Documentation

django-conman

Coverage Status Build Status Requirements Status

A CONtent MANagement system for Django. (Get it?)

Requirements

Tested against:

  • Python 3.4, 3.5, 3.6
  • Django >=1.10

Requires (should be automatically installed if using pip):

  • django-polymorphic

Install

# From PyPI...
pip install django-conman

# ...or from source
pip install -e git+https://github.com/meshy/django-conman.git#egg=conman

Minimal configuration

# settings.py
INSTALLED_APPS += ['conman.routes']

# urls.py
urlpatterns = [
    # All other URLS should go above this catch-all.
    url(r'', include('conman.routes.urls')),
]

Basic custom app

In the following example, MyRoute.trusted_content contains HTML that is safe to be rendered directly into a template. Only use |safe with extreme caution in your own projects.

# my_template.html
{{ route.trusted_content|safe }}


# models.py
from conman.routes.models import Route

class MyRoute(Route):
    trusted_content = models.TextField()

    template_name = 'my_template.html'


# admin.py
from conman.routes.admin import RouteChildAdmin
from django.contrib import admin
from .models import MyRoute

@admin.register(MyRoute)
class MyRouteAdmin(RouteChildAdmin):
    pass

A more complex example might use a rich text field such as the HTMLField from djagno-tinymce, and be careful to sanitise the HTML with bleach.