123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- Metadata-Version: 2.0
- Name: django-appconf
- Version: 1.0.1
- Summary: A helper class for handling configuration defaults of packaged apps gracefully.
- Home-page: http://django-appconf.readthedocs.org/
- Author: Jannis Leidel
- Author-email: jannis@leidel.info
- License: BSD
- Platform: UNKNOWN
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Environment :: Web Environment
- Classifier: Framework :: Django
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: BSD License
- Classifier: Operating System :: OS Independent
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 2
- Classifier: Programming Language :: Python :: 2.6
- Classifier: Programming Language :: Python :: 2.7
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3.2
- Classifier: Programming Language :: Python :: 3.3
- Classifier: Programming Language :: Python :: 3.4
- Classifier: Topic :: Utilities
- Requires-Dist: six
- django-appconf
- ==============
- .. image:: https://secure.travis-ci.org/jezdez/django-appconf.png?branch=develop
- :alt: Build Status
- :target: http://travis-ci.org/jezdez/django-appconf
- A helper class for handling configuration defaults of packaged Django
- apps gracefully.
- .. note::
- This app precedes Django's own AppConfig_ classes that act as
- "objects [to] store metadata for an application" inside Django's
- app loading mechanism. In other words, they solve a related but
- different use case than django-appconf and can't easily be used
- as a replacement. The similarity in name is purely coincidental.
- .. _AppConfig: https://docs.djangoproject.com/en/stable/ref/applications/#django.apps.AppConfig
- Overview
- --------
- Say you have an app called ``myapp`` with a few defaults, which you want
- to refer to in the app's code without repeating yourself all the time.
- ``appconf`` provides a simple class to implement those defaults. Simply add
- something like the following code somewhere in your app files::
- from appconf import AppConf
- class MyAppConf(AppConf):
- SETTING_1 = "one"
- SETTING_2 = (
- "two",
- )
- .. note::
- ``AppConf`` classes depend on being imported during startup of the Django
- process. Even though there are multiple modules loaded automatically,
- only the ``models`` modules (usually the ``models.py`` file of your
- app) are guaranteed to be loaded at startup. Therefore it's recommended
- to put your ``AppConf`` subclass(es) there, too.
- The settings are initialized with the capitalized app label of where the
- setting is located at. E.g. if your ``models.py`` with the ``AppConf`` class
- is in the ``myapp`` package, the prefix of the settings will be ``MYAPP``.
- You can override the default prefix by specifying a ``prefix`` attribute of
- an inner ``Meta`` class::
- from appconf import AppConf
- class AcmeAppConf(AppConf):
- SETTING_1 = "one"
- SETTING_2 = (
- "two",
- )
- class Meta:
- prefix = 'acme'
- The ``MyAppConf`` class will automatically look at Django's global settings
- to determine if you've overridden it. For example, adding this to your site's
- ``settings.py`` would override ``SETTING_1`` of the above ``MyAppConf``::
- ACME_SETTING_1 = "uno"
- In case you want to use a different settings object instead of the default
- ``'django.conf.settings'``, set the ``holder`` attribute of the inner
- ``Meta`` class to a dotted import path::
- from appconf import AppConf
- class MyAppConf(AppConf):
- SETTING_1 = "one"
- SETTING_2 = (
- "two",
- )
- class Meta:
- prefix = 'acme'
- holder = 'acme.conf.settings'
- If you ship an ``AppConf`` class with your reusable Django app, it's
- recommended to put it in a ``conf.py`` file of your app package and
- import ``django.conf.settings`` in it, too::
- from django.conf import settings
- from appconf import AppConf
- class MyAppConf(AppConf):
- SETTING_1 = "one"
- SETTING_2 = (
- "two",
- )
- In the other files of your app you can easily make sure the settings
- are correctly loaded if you import Django's settings object from that
- module, e.g. in your app's ``views.py``::
- from django.http import HttpResponse
- from myapp.conf import settings
- def index(request):
- text = 'Setting 1 is: %s' % settings.MYAPP_SETTING_1
- return HttpResponse(text)
|