Commits

Mikhail Korobov committed 642b2bc Merge

merge

  • Participants
  • Parent commits 71366b9, 7bb4dc9

Comments (0)

Files changed (2)

--*- markdown -*-
-
 ## Description
 
 `django-composition` provides the abstract way to denormalize data from your models in simple declarative way through special generic model field called `CompositionField`.
 
 ## Base concept
 
+`CompositionField` is django model field that provides interface to data denormalization.
+
+`CompositionField` constructor params:
+ - native - Django field instance for current compostion field
+ - trigger - one or some numberr of triggers that handle composition.
+   Trigger is a dict with allowed keys:
+  - on - signal or list of signals that this field handles
+  - do - signals handler, with 3 params:
+   - related instance
+   - instance (that comes with signal send)
+   - concrete signal (one from `on` value)
+  - field_holder_getter - function that gets instance(that comes with signal send)\
+                          as parameter and returns field holder
+                          object (related instance)
+  - sender - signal sender
+  - sender_model - model instance or model name that send signal
+  - commit - flag that indicates save instance after trigger appliance or not
+ - commons - a trigger like field with common settings
+             for all given triggers
+ - update_method - dict for customization of update_method. Allowed params:
+  - initial - initial value to field before applince of method
+  - do - index of update trigger or trigger itself
+  - queryset - query set or callable(with one param - `instance` of an holder model)
+            that have to retun something iterable
+  - name - custom method name instead of `update_FOO`
 
 ## Short-cuts
 
  - `ForeignAttributeField`
 
  - `ChildsAggregationField`
- 
+
  - `AtributesAggregationField`
         "composition.tests"
     ],
 
-    description=get_description(),
+    description='`django-composition` provides the abstract way to denormalize data from your models in simple declarative way through special generic model field called `CompositionField`',
+    long_description=get_description(),
 
     classifiers=[
         "Framework :: Django",