File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -46,6 +46,39 @@ $ docker build -t django-ckc . && docker run django-ckc pytest
46
46
Make your models have a ` deleted ` bool set when they are deleted instead of actuallying
47
47
being deleted. Uses a model manager ` SoftDeleteModelManager ` to keep them hidden.
48
48
49
+ #### ` PrimaryKeyWriteSerializerReadField `
50
+
51
+ A DRF field for writing via PK and reading via a serializer. Useful for when you want to
52
+ connect 2 models together and immediately display to the user some useful information.
53
+
54
+ For example, if you had an ` Order ` model with ` LineItem ` objects pointing to it, it may be
55
+ useful to create a new line item via order PK and return back the complete order with
56
+ new totals and other calculations:
57
+
58
+ ``` py
59
+ class LineItemUpdateSerializer (serializers .ModelSerializer ):
60
+ order = PrimaryKeyWriteSerializerReadField(
61
+ queryset = Order.objects.all(),
62
+ read_serializer = OrderDetailSerializer
63
+ )
64
+
65
+ class Meta :
66
+ model = LineItem
67
+ fields = [" id" , " order" , " product" ]
68
+ ```
69
+
70
+ ` POST ` data for adding product #123 to order #5 would look like
71
+
72
+ ``` js
73
+ // REQUEST
74
+ {" order" : 5 , " product" : 123 }" }
75
+
76
+ // RESPONSE
77
+ {" order" : {" total_amount" : " $1,000 .00 " }, " product" : 123}
78
+ ```
79
+
80
+
81
+
49
82
#### `DefaultUserCreateMixin` for `ModelSerializers`
50
83
51
84
This will automatically set `YourModel.created_by` to `request.user`. To override which
You can’t perform that action at this time.
0 commit comments