Skip to content

A reusable Django app that allows to place dynamic content into templates.

License

Notifications You must be signed in to change notification settings

bitlabstudio/django-dynamic-content

Repository files navigation

Django Dynamic Content

A reusable Django app that allows to place dynamic content into templates.

Usually you would use a CMS like django-cms for this scenario, which also has very useful static placeholders as of version 3, but sometimes you have a small project that doesn't need a fully blown CMS. In this usecase a simple model with content that can be edited via the admin and which instances can be placed in templates would be nice to have.

As this app grows, we might add frontend editing ability in the future.

Installation

To get the latest stable release from PyPi

pip install django-dynamic-content

To get the latest commit from GitHub

pip install -e git+git://github.com/bitmazk/django-dynamic-content.git#egg=dynamic_content

Add dynamic_content to your INSTALLED_APPS

INSTALLED_APPS = (
    ...,
    'dynamic_content',
            'parler',
            'ckeditor',
)

Please check out the ckeditor docs for installation and configuration: https://github.com/django-ckeditor/django-ckeditor

Before your tags/filters are available in your templates, load them by using

{% load dynamic_content_tags %}

Don't forget to migrate your database

./manage.py migrate dynamic_content

Usage

Just put this into your template:

{% load dynamic_content_tags %}
{% get_content "FOOTER_INFO" default="Foobar!" as footer %}
    {{ footer.content|linebreaks }}
    {{ footer.content_html|safe }}

Of course you are not forced to use both content fields (html and non-html).

Templatetags

get_content

Usage: {% get_content "<content_identifier" [default="Default text"] as <variable_name> %}

This is an assignment tag that simply fetches the content from the database based on the given unique content identifier.

If no object with the given identifier is found, a new one will be created. If you pass in a default text, the new object will be created with that text.

Contribute

If you want to contribute to this project, please perform the following steps

# Fork this repository
# Clone your fork
mkvirtualenv -p python2.7 django-dynamic-content
make develop

git co -b feature_branch master
# Implement your feature and tests
git add . && git commit
git push -u origin feature_branch
# Send us a pull request for your feature branch

About

A reusable Django app that allows to place dynamic content into templates.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published