.. contents:: ==================== django-smart-extends ==================== .. image:: https://api.travis-ci.org/goinnn/django-smart-extends.png?branch=django_1.4_and_1.5 :target: https://travis-ci.org/goinnn/django-smart-extends .. image:: https://coveralls.io/repos/goinnn/django-smart-extends/badge.png?branch=django_1.4_and_1.5 :target: https://coveralls.io/r/goinnn/django-smart-extends .. image:: https://badge.fury.io/py/django-smart-extends.png :target: https://badge.fury.io/py/django-smart-extends .. image:: https://pypip.in/d/django-smart-extends/badge.png :target: https://pypi.python.org/pypi/django-smart-extends django-smart-extends is a Django application that allows improve the extension system of Django templates. It is distributed under the terms of the license write in the same directory, in the file COPYING.LGPLv3 Dependencies ============ * `Django `_ >= 1.4 How to install ============== In your settings.py ------------------- :: INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', ... 'smartextends', ) And if you want: :: OVERWRITE_EXTENDS = True How to use ========== This application is useful when you want to overwrite a template of a application in your project. Currently this in Django produce infinite recursion This is an example with django.contrib.admin app, but django-smart-extends works with any application, **this is not only to the admin site**. This is very useful if you use reusable django apps or any CMS implemented in django. If you set OVERWRITE_EXTENDS = True file:admin/change_list.html :: {% extends "admin/change_list.html" %} {% block extrastyle %} {{ block.super }} {% endblock %} Else: file:admin/change_list.html :: {% smart_extends "admin/change_list.html" %} {% block extrastyle %} {{ block.super }} {% endblock %} Patches ======= If you set TEMPLATE_DEBUG = False in settings.py you must patch the django code. You can find the patches in the patches directoy:: # If you are using django 1.5 patch -p2 -N -d my/path/of/django/ < ./patches/patch1.5.diff # Or this if you are using django 1.4 patch -p2 -N -d my/path/of/django/ < ./patches/patch1.4.diff Reported ======== * `Ticket in Django trac `_ * `Pull request to Django repository `_