Skip to main content

Django Pods

https://travis-ci.org/jthi3rry/django-pods.svg?branch=master https://coveralls.io/repos/jthi3rry/django-pods/badge.png?branch=master https://landscape.io/github/jthi3rry/django-pods/master/landscape.png

Django Pods is a minimalist package that lets you configure default settings for your reusable apps, and allows developers using your apps to override these defaults in their own project settings.

This package is largely inspired by Django Rest Framework and Django AllAuth and adapted to work with Django Applications, but also with any classes extending pods.apps.AppSettings.

Preview

Django Pods allows developers to customise app settings in two ways:

  1. Dictionary style (as per Django Rest Framework):

    YOUR_APP = {
        "SETTING": "VALUE"
    }
  2. Prefix style:

    YOUR_APP_SETTING = "VALUE"

Installation

pip install django-pods

Usage in Reusable Apps

  1. If you are publishing a packaged application, add django-pods to the install_requires of your setup.py:

    setup(
        name="rock_n_roll",
        install_requires=["django-pods", ...],
        ...
    )
  2. Add the AppSettings mixin to your AppConfig implementation in rock_n_roll/apps.py:

    from django.apps import AppConfig
    from pods.apps import AppSettings
    
    
    class RockNRollConfig(AppSettings, AppConfig):
        name = 'rock_n_roll'
        verbose_name = "Rock ’n’ roll"
    
        # Path to app settings module
        settings_module = "rock_n_roll.app_settings"
    
        # Optional
        settings_imports = ("CLASS_TO_IMPORT",)
    
        # Optional
        # defaults to the capitalized class name, e.g. ROCK_N_ROLL_CONFIG
        settings_key = "ROCK_N_ROLL"
  3. Declare your default app settings in rock_n_roll/app_settings.py:

    QUESTION = "What is your favourite band?"
    ANSWER = "The Rolling Stones"
    CLASS_TO_IMPORT = "path.to.ClassToImport"
  4. Access your settings anywhere in your package:

    from django.apps import apps
    
    app = apps.get_app_config('rock_n_roll')
    
    app.QUESTION
    # What is your favourite band?
    
    app.ANSWER
    # The Rolling Stomes
    
    app.CLASS_TO_IMPORT
    # <class 'path.to.ClassToImport'>

Settings can also be accessed directly via the class:

from rock_n_roll.apps import RockNRollConfig


RockNRollConfig.QUESTION
RockNRollConfig.ANSWER
RockNRollConfig.CLASS_TO_IMPORT

Usage in Projects

  1. Install the app that uses Django Pods:

    pip install rock_n_roll
  2. Add the app to the INSTALLED_APPS of your project/settings.py:

    INSTALLED_APPS = (
        ...
        "rock_n_roll",
        ...
    )
  3. Override the app’s settings as needed:

    # Dictionary style
    ROCK_N_ROLL = {
        "ANSWER": "The Beatles",
    }
    
    
    # Prefix style
    ROCK_N_ROLL_ANSWER = "The Beatles"

Running Tests

tox

Contributions

All contributions and comments are welcome.

Metadata

Release files for django-pods 1.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for django-pods 1.1.4
File Interpreter ABI Platform Actions
django_pods-1.1.4-py2.py3-none-any.whl Python 3, Python 2 none any Details for django_pods-1.1.4-py2.py3-none-any.whl

Release files / django_pods-1.1.4-py2.py3-none-any.whl

Download URL django_pods-1.1.4-py2.py3-none-any.whl
Size 7.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
2360eaa2db04a06c181837afbc933cab5fb3e8a0971553ba70c17b5cb3873410
BLAKE2b-256 checksum
How to use checksums
ba642938a12aeea987d8727f49971de87490eccfe21fab2dcfbdbd5231fcefff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for django-pods 1.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page