diff --git a/README b/README index e69de29..e63a3f8 100644 --- a/README +++ b/README @@ -0,0 +1,87 @@ +django-eav +========== + + +Introduction +------------ + +django-eav provides an Entity-Attribute-Value storage model for django apps. + +For a decent explanation of what an Entity-Attribute-Value storage model is, +check `Wikipedia +`_. + +.. note:: + This software was inspired / derrived from the excellent `eav-django + `_ written by Andrey + Mikhaylenko. + + There are a few notable differences between this implimentation and the + eav-django implementation. + + * This one is called django-eav, whereas the other is called eav-django. + * This app allows you to to 'attach' EAV attributes to any existing django + model (even from third-party apps) without making any changes to the those + models' code. + * This app has slightly more robust (but still not perfect) filtering. + + +Usage +----- + +Register your model(s) +~~~~~~~~~~~~~~~~~~~~~~ +Before you can attach eav attributes to your model, you must register your +model with eav:: + + >>> import eav + >>> eav.register(MyModel) + +Create some attributes +~~~~~~~~~~~~~~~~~~~~~~ +:: + + >>> from eav.models import Attribute + >>> Attribute.objects.create(name='Weight', datatype=Attribute.TYPE_FLOAT) + >>> Attribute.objects.create(name='Color', datatype=Attribute.TYPE_TEXT) + + +Assign eav values +~~~~~~~~~~~~~~~~~ +:: + + >>> m = MyModel() + >>> m.eav.weight = 15.4 + >>> m.eav.color = 'blue' + >>> m.save() + >>> m = MyModel.objects.get(pk=m.pk) + >>> m.eav.weight + 15.4 + >>> m.eav.color + blue + + >>> p = MyModel.objects.create(eav__weight = 12, eav__color='red') + +Filter on eav values +~~~~~~~~~~~~~~~~~~~~ +:: + + >>> MyModel.objects.filter(eav__weight=15.4) + + >>> MyModel.objects.exclude(name='bob', eav__weight=15.4, eav__color='red') + + +Further Information +------------------- + +Install from GitHub +~~~~~~~~~~~~~~~~~~~ + +It should be possible to install this tool directly from github using pip:: + + pip install -e git+git://github.com/mvpdev/django-eav.git#egg=django-eav + +Documentation and Examples +~~~~~~~~~~~~~~~~~~~~~~~~~~ + + ``_