drf manytomany though
models.py
假设有分组表和套餐表, 规划和套餐是多对多关系:即一个规划可以包含多个套餐,一个套餐可以属于多个分组;
典型的django manytomany关系, 通过through关联,以便存更多信息(比如数量)
1 | class PlanGroup(models.Model): |
serializers.py
关键是serializers这里,有两点要注意
- 要重写creat,update方法,存储关联数据
- 关联的serializer类需要指定source=plangroupproductrel_set
1 | class PlanGroupProductRelSerializer(serializers.ModelSerializer): |
views.py
view层就比较简单了, 执行用viewsets
1 | class PlanGroupViewSet(DynamicTableFieldMixin, viewsets.ModelViewSet): |
post数据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
34
35
36{
"name": "test_group_2222",
"products":[
{
"product": 26,
"server_count": 10
},
{
"product": 28,
"server_count": 15
}
],
"rack_count": 5,
"switch_info": {
"1": [
{
"name": "sw1",
"count": 20,
"is_main": true
},
{
"name": "sw2",
"count": 11,
"is_main": true
}
],
"2": [
{
"name": "sw1",
"count": 30,
"is_main": false
}
]
},
"aoc_count": 2
}