Create simple reusable template components in Django. https://django-components.github.io/django-components
Find a file
2015-06-14 14:46:07 +02:00
django_components Add component tag. 2015-06-14 14:43:57 +02:00
tests Add component tag. 2015-06-14 14:43:57 +02:00
.gitignore Add GitHubs default gitignore. 2015-06-11 19:58:44 +02:00
.travis.yml Add Travis CI configuration 2015-06-13 13:42:28 -05:00
README.md Remove trailing spaces. 2015-06-14 14:46:07 +02:00
setup.py Use tox to test 2015-06-13 13:42:27 -05:00
tox.ini Use tox to test 2015-06-13 13:42:27 -05:00

django-components

A way to create simple reusable template components in Django.

Installation

pip install django-components (NOTE: Does not work yet)

Usage

Start by creating a Component by inheriting from the Component class. Don't forget to register the component so that it's available in the templates.

from django_components import component

class Calendar(component.Component):
    def context(self, date):
        return {
            "date": date,
        }

    class Media:
        template = "[your app]/components/calendar/calendar.html"
        css = {'all': ('[your app]/components/calendar/calendar.css',)}
        js = ('[your app]/components/calendar/calendar.js',)

component.register(name="calendar", component=Calendar) 

In your templates, use your component by first importing the django_components tag library, and then using the component_dependencies and component tags to render the component to the page.

{% load components %}
{% block extra_media %}{% component_dependencies %}{% endblock %}
{% block main %}
    {% component name="calendar" date=custom_date %}
{% endblock %}

Running the tests

Install and run tox:

pip install tox
tox