~ubuntuone-hackers/django-modeldict/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
------------------
NOTICE: Deprecated
------------------

This project is deprecated and no longer actively maintained by `Disqus <https://disqus.com/>`_. However there is a fork being maintained by YPlan at `github.com/YPlan/django-modeldict <https://github.com/YPlan/django-modeldict>`_ and a similar project by Disqus at `github.com/disqus/durabledict <https://github.com/disqus/durabledict/>`_.

----------------
django-modeldict
----------------

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``).

Quick example usage. More docs to come (maybe?)::


	class Setting(models.Model):
	    key = models.CharField(max_length=32)
	    value = models.CharField(max_length=200)
	settings = ModelDict(Setting, key='key', value='value', instances=False)
	
	# access missing value
	settings['foo']
	>>> KeyError
	
	# set the value
	settings['foo'] = 'hello'
	
	# fetch the current value using either method
	Setting.objects.get(key='foo').value
	>>> 'hello'
	
	settings['foo']
	>>> 'hello'