Mikhail Korobov avatar Mikhail Korobov committed 642b2bc Merge

merge

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",
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.