Skip to main content

Django app allowing users to set app specific preferences through the admin interface.

Project description

Django Preferences

Django app allowing users to set app specific preferences through the admin interface.

Provides singleton admin views for Preferences objects and a simple interface to preference values. Singleton views ensure only one preference intance per site is available for each Preferences class.

Installation

  1. Install or add django-new-preferences to your Python path.

  2. Add preferences to your INSTALLED APPS setting.

  3. Add django.contrib.sites to your INSTALLED APPS setting. django-new-preferences associates preferences to specific sites and thus requires Django’s “sites” framework to be installed.

  4. Optionally, add preferences.context_processors.preferences_cp to your template context processors settings. This will automatically add a preferences variable to your template context:

    TEMPLATE_CONTEXT_PROCESSORS = (
        ...other context processors...,
        "preferences.context_processors.preferences_cp",
    )

Usage

To create preferences for your app create a Django ORM model as usual, with the model inheriting from preferences.models.Preferences. Also specify preferences.models as your model’s module:

from django.db import models
from preferences.models import Preferences

class MyPreferences(Preferences):
    portal_contact_email = models.EmailField()

Admin classes are specified as per usual, except that they have to inherit from or be registered with preferences.admin.PreferencesAdmin, i.e.:

from django.contrib import admin

from preferences.admin import PreferencesAdmin
from <my_app>.models import MyPreferences

admin.site.register(MyPreferences, PreferencesAdmin)

When your model is registered with admin it will show up under the Preferences app label in Django admin.

Preferences can be accessed in Python by importing the preferences module and traversing to your required preference in the form preferences.<ModelName>.<field>, i.e.:

from preferences import preferences

portal_contact_email = preferences.MyPreferences.portal_contact_email

If you’ve specified the preferences.context_processors.preferences_cp as a TEMPLATE_CONTEXT_PROCESSORS you can similarly access your preferences within templates through the preferences variable, i.e.:

{{ preferences.MyPreferences.portal_contact_email }}

Authors

Praekelt Consulting

  • Shaun Sephton

  • Euan Jonker

  • Hedley Roos

Changelog

next

  1. Django 2 and Python 3.5 compatibility. Django 1.9 is no longer supported.

0.2

  1. Move to tox for tests.

  2. Django 1.9 to 1.11 support. The official minimum supported version is 1.9.

0.1

  1. Cleanup and fixing of tests courtesy of senyor.

  2. Rewrite distinct query so it works with Oracle backend.

0.0.6

  1. Better packaging.

0.0.5 (2011-08-17)

  1. Added sites support.

  2. Added unittests.

0.0.4 (2011-08-11)

  1. Cleanup. Docs polish.

0.0.3

  1. Spelling correction, thanks tiktuk.

0.0.2

  1. Doc update to indicate importance of placing url include before admin url include.

0.0.1

  1. First super alpha release.

Project details


Release history Release notifications | RSS feed

This version

0.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-new-preferences-0.2.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

django_new_preferences-0.2-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file django-new-preferences-0.2.tar.gz.

File metadata

  • Download URL: django-new-preferences-0.2.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.5

File hashes

Hashes for django-new-preferences-0.2.tar.gz
Algorithm Hash digest
SHA256 146145700a2226fdeaf9efa6677ebf43a95bf30d569b452e6c1514ba36764bce
MD5 29bf9bc24b8651f593d63f65a6200a83
BLAKE2b-256 6a5c4d4ddd080ee49464cf840a80491e35b8da3209f20967a2ae9f778e8ec78e

See more details on using hashes here.

File details

Details for the file django_new_preferences-0.2-py3-none-any.whl.

File metadata

  • Download URL: django_new_preferences-0.2-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.5

File hashes

Hashes for django_new_preferences-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a2a04ac9370e0c7c23f08889a6b61d578ff5dc075c404e7c7905b2a6105da5ac
MD5 c3059e22b3c4032191bad2fc9b812b0e
BLAKE2b-256 1cf4bf4740cdd5a91d4a47010de5bd992ea59336be925485c458fdcebc43a3d0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page