Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/meshy/django-conman

NOT READY: Work in progress. A content management system for django
https://github.com/meshy/django-conman

content-management django python-3

Last synced: 3 months ago
JSON representation

NOT READY: Work in progress. A content management system for django

Awesome Lists containing this project

README

        

# django-conman

[![Coverage Status](https://img.shields.io/coveralls/meshy/django-conman.svg)](https://coveralls.io/r/meshy/django-conman) [![Build Status](https://travis-ci.org/meshy/django-conman.svg?branch=master)](https://travis-ci.org/meshy/django-conman) [![Requirements Status](https://requires.io/github/meshy/django-conman/requirements.svg?branch=master)](https://requires.io/github/meshy/django-conman/requirements/?branch=master)

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

```bash
# From PyPI...
pip install django-conman

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

## Minimal configuration
```python
# 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`][django-safe] with
extreme caution in your own projects.

```python
# 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][django-tinymce], and be careful to sanitise the HTML with
[bleach][bleach].

[django-safe]: https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#safe
[django-tinymce]: https://github.com/aljosa/django-tinymce
[bleach]: https://github.com/mozilla/bleach