Skip to main content

Integrate Diazo in Django using WSGI middleware and add/change themes using the Django Admin interface.

Project description

Integrate Diazo in Django using WSGI middleware and add/change themes using the Django Admin interface.

The code is maintained on GitHub (https://github.com/Goldmund-Wyldebeast-Wunderliebe/django-diazo).

Installation

settings.py

INSTALLED_APPS = (
    ...
    'django_diazo',
    ...
)

We highly recommend to use the following code as the first lines of your settings file. It’s just a good practice:

import os

PROJECT_DIR = os.path.dirname(os.path.dirname(__file__))  # Level of manage.py
BASE_DIR = os.path.dirname(PROJECT_DIR)  # Level of virtualenv

You might want to supply your Django application with an out-of-the-box theme, probably also managed in a VCS.

Create a new app with a diazo.py file in its root. The contents of this file is should be something like this:

from django_diazo.theme import DiazoTheme, registry

class BootstrapTheme(DiazoTheme):
    name = 'Bootstrap Theme'
    slug = 'bootstrap_theme'
registry.register(BootstrapTheme)

To synchronize the built-in themes with the database/application run the following command:

python manage.py syncthemes

wsgi.py

Add the following lines to your wsgi.py file:

# Apply WSGI middleware here.
from django_diazo.wsgi import DiazoMiddlewareWrapper
application = DiazoMiddlewareWrapper(application)

Database (South migrations)

Migrate the database:

python manage.py migrate django_diazo

Uploaded themes

By default, the .zip files that are uploaded are extracted in the media folder. You might want to serve these files in debug mode. Add the following to your urls.py:

if settings.DEBUG:
    urlpatterns += patterns('',
       url(r'^%s/themes/(?P<path>.*)$' % settings.MEDIA_URL.strip('/'), 'django.views.static.serve',
           {'document_root': os.path.join(settings.MEDIA_ROOT, 'themes'), 'show_indexes': True}),
    )

For production environments it is not recommended to serve files from the media folder. This implementation only servers files in the themes folder within the media folder but it would be better to serve these files using a web server and not via Django.

Logging

If you want logging of the errors that might occur in the Diazo transformation, add the following to settings.py:

DIAZO_LOG_FILE = '/var/log/django_diazo.log'

LOGGING = {
    'formatters': {
        ...
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
        ...
    },
    'handlers': {
        ...
        'django_diazo_file': {
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'formatter': 'verbose',
            'filename': DIAZO_LOG_FILE,
        },
        'console':{
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        ...
    },
    'loggers': {
        ...
        'django_diazo': {
            'handlers': ['django_diazo_file', 'console'],
            'level': 'INFO',
            'propagate': True,
        },
        ...
    },
}

Example themes / application

Take a look at https://github.com/Goldmund-Wyldebeast-Wunderliebe/django-diazo-themes and https://github.com/Goldmund-Wyldebeast-Wunderliebe/django-diazo-blog for examples of built-in themes and an integration example.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_diazo-0.4.zip (26.1 kB view details)

Uploaded Source

File details

Details for the file django_diazo-0.4.zip.

File metadata

  • Download URL: django_diazo-0.4.zip
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django_diazo-0.4.zip
Algorithm Hash digest
SHA256 d2b10b22df72192c0db49c674fcca06ffda825cf17447a55f86038e91c463118
MD5 6362bf76b2d7ae6ed3a7105051be4d2f
BLAKE2b-256 00c44384d6046bd7b0f9060bd35149b73c362c033db1014520ce36c2c6b84fcb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page