django-template-mixins 0.3.1

Creator: codyrutscher

Last updated:

Add to Cart

Description:

djangotemplatemixins 0.3.1

A template filter that allows you to define and use mixins.

Installation
In your Django project, run:
pip install django-template-mixins
and add mixin_templatetag to your INSTALLED_APPS setting:
INSTALLED_APPS = [
...,
'mixin_templatetag'
]
and from there you can use it as follows:
{% load mixins %}

{% mixin foo %}
<div>
<div>{{ name }}</div>
<div>{{ description }}</div>
</div>
{% endmixin %}

{% block content %}
...
{% mix foo with name="hello" description="world" %}
...
{% endblock %}
If you want to use components instead, note that the feature is EXPERIMENTAL + there is a restriction that components can’t extend or include another file.
Here’s an example of using components:
component.html:
<body>
{% slot foo %}
<div>DEFAULT_FOO{{ some_var }}</div>
{% endslot %}


{% slot bar %}
<div>DEFAULT_BAR</div>
{% endslot %}
</body>
content.html:
{% component 'component.html' with some_var=':(' %}
{% slot bar %}
my way
{% endslot %}
{% endcomponent %}


Why django-template-mixins?
Currently in Django, if you want to repeat a block multiple times in separate blocks / areas in the same block, you have to create a separate file. The worst part is that these extracted bits of template tend to be single purpose - you aren’t likely to need it anywhere else besides that first template.
Mixins allow you to keep things in one place and allows you to avoid DRY.
I added in components (EXPERIMENTALLY) to the mix because it was requested, and after thinking about it for awhile it seemed like a useful feature that I would also want. From my basic tests it seems to work.


Reporting bugs
You can report bugs in https://github.com/benlei/django-template-mixins/issues.
If you believe you’ve found a bug, please try to identify the root cause and write up some sample code on how to reproduce it.


Author
Benjamin Lei
Contributors:

xblitz

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.