Stores a model as a dictionary
ModelDict is a very efficient way to store things like settings in your database. The entire model is transformed into a dictionary (lazily) as well as stored in your cache. It’s invalidated only when it needs to be (both in process and based on CACHE_BACKEND).
It was originally created by Disqus, but due to the inactivity we at YPlan have taken over maintenance on this fork.
Tested with all combinations of:
- Python: 2.7, 3.5
- Django: 1.8, 1.9
Install it with pip:
pip install django-modeldict-yplan
Make sure you pip uninstall django-modeldict first if you’re upgrading from the original to this fork - the packages clash.
# You'll need a model with fields to use as key and value in the dict class Setting(models.Model): key = models.CharField(max_length=32) value = models.CharField(max_length=200) # Create the ModelDict... settings = ModelDict(Setting, key='key', value='value', instances=False) # And you can treat it like a normal dict: # Missing values = KeyError settings['foo'] >>> KeyError # Sets supported settings['foo'] = 'hello' # Fetch the current value using normal dictionary access settings['foo'] >>> 'hello' # ...or by normal model queries Setting.objects.get(key='foo').value >>> 'hello'
- Any new changes will go here
- Forked by YPlan
- Fixed concurrency TOCTTOU bug for threaded Django servers.
- Stopped including the ‘tests’ directory in package
- Django 1.8 and 1.9 supported.
- Python 3 support added.
- Fixed setdefault() to return the value that was set/found, as per normal dict semantics. Thanks @olevinsky.
- Last release by Disqus
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size django_modeldict_yplan-1.5.0-py2.py3-none-any.whl (11.6 kB)||File type Wheel||Python version 2.7||Upload date||Hashes View|
|Filename, size django-modeldict-yplan-1.5.0.tar.gz (13.0 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for django_modeldict_yplan-1.5.0-py2.py3-none-any.whl
Hashes for django-modeldict-yplan-1.5.0.tar.gz