Login

Conditional INSTALLED_APPS entry

Author:
tgandor
Posted:
May 11, 2014
Language:
Python
Version:
Not specified
Score:
0 (after 0 ratings)

Some INSTALLED_APPLICATIONS applications may not be critical for your website to work - for example you may only need them for development - like 'django_extensions' or 'debug_toolbar'. They needn't be installed actually for the site to work.

This way you can avoid discussions with other developers if some application should be included, or is it just spam, because if they don't like it, they don't have to install it.

On a production server you can leave this not installed, to avoid security concerns like a possibility to IP-spoof and see the debug toolbar.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# settings.py


INSTALLED_APPS = (
    'longerusername',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.admin',
    # ...
)


def _enable_conditional(application):
    global INSTALLED_APPS
    try:
        __import__(application)
        INSTALLED_APPS += (application,)
    except ImportError:
        pass

_enable_conditional('django_extensions')
_enable_conditional('debug_toolbar')

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 11 months, 2 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 3 weeks ago
  3. Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
  5. Help text hyperlinks by sa2812 1 year, 8 months ago

Comments

Please login first before commenting.