Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A reuseable django app for storing preferences into database.
Python Shell
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.



With django-dbpreferences you can store some app/user preferences into the database.

A django app defines a form with initial values. The form cleaned data dict would be stored serialized into the database. The app can easy get the current preference dict and the user can easy edit the values in the django admin panel.

With UserSettings you can store some settings per user.

More Information and examples can be found here:

Django compatibility

Version Tested with:
v0.5.0 django v1.6
v0.4.5 django v1.4


  • v0.5.0
    • Changes for django 1.6 support
  • v0.4.5
  • v0.4.4
    • Add south support (if installed)
    • tests can be run with ./ test
    • add german translations
  • v0.4.3
  • v0.4.2
    • Bugfix: Add templates to pypi package
  • v0.4.1
    • Bugfix with BooleanField
  • v0.4.0
    • NEW: Use initial data, if not exist in saved preferences. So it’s easier to add new preferences values.
  • v0.3.8
    • Bugfix in error message for not existing keys
  • v0.3.7
    • Change version scheme and add last git commit date to version string
  • v0.3.6
    • Display current value on ValidationError
  • v0.3.5
    • Updates for django v1.2 API changes
  • v0.3.4
    • Bugfix if help_text contains non ascii characters and html code
  • v0.3.3
    • validate preferences with model validation
    • clean preferences in get_preferences()
  • v0.3.2
    • some bugfixes
  • v0.3.1
    • Bugfix if DictField can be null / DictFormField(required=False)
  • v0.3.0
    • separate field stuff from into, so its usable in other projects, too.
    • Use own dict class for serialize/deserialize
    • Update unittest for new django admin url prefix
  • v0.2.0
  • v0.1.0

pip upgrade

To do a pip upgrade in a virtual environment, run this:

~$ cd /YourVirtualEnv/bin
~/YourVirtualEnv/bin$ source activate
(YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=git+git://

The example used git readonly clone url. If you use subversion do this:

(YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=

If you have git write access, use this:

(YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose

fast repo update

To made a fast repository update, you can run this simple shell script:

~$ cd /path/to/django-dbpreferences
/path/to/django-dbpreferences$ ./

the update script runs “git pull origin master” or “svn update”.


If you like it, send some Bitcoins to 1HLNVtZFwdHLavRKdUebTGHVn8A7e6Dgne ;)




Come into the conversation, besides the github communication features:

IRC #pylucid on (Yes, the PyLucid channel...)
Something went wrong with that request. Please try again.