# client_max_num = serializers.SerializerMethodField()
class Meta:
model = TestRecord
- fields = ('add_time', 'machine_info', 'pg_info', 'trend', 'linux_info', 'meta_info')
+ fields = ('hash', 'add_time', 'machine_info', 'pg_info', 'trend', 'linux_info', 'meta_info')
def get_trend(self, obj):
dataset_list = TestDataSet.objects.filter(test_record_id=obj.id).values_list('status').annotate(Count('id'))
def get_machine_info(self, obj):
- machine_data = UserMachine.objects.filter(Q(id=obj.test_machine_id))
+ machine_data = UserMachine.objects.filter(id=obj.test_machine_id)
machine_info_serializer = UserMachineSerializer(machine_data,many=True, context={'request': self.context['request']})
return machine_info_serializer.data
# rw_client_num = TestResult.objects.filter(Q(test_record_id=obj.id ) ,test_cate_id=2).order_by('clients').distinct('clients').count()
# return max(ro_client_num,rw_client_num)
+
+class TestDataSetSerializer(serializers.ModelSerializer):
+
+ class Meta:
+ model = TestDataSet
+ fields = "__all__"
+
class TestRecordDetailSerializer(serializers.ModelSerializer):
'''
pg_info =PGInfoSerializer()
linux_info = LinuxInfoSerializer()
meta_info = MetaInfoSerializer()
- ro_info = serializers.SerializerMethodField()
- rw_info = serializers.SerializerMethodField()
+ dataset_info = serializers.SerializerMethodField()
+ # rw_info = serializers.SerializerMethodField()
class Meta:
model = TestRecord
fields = "__all__"
- def get_ro_info(self, obj):
- all_data = TestResult.objects.filter(Q(test_record_id=obj.id ) ,test_cate_id=1)
-
- ro_info_serializer = TestResultSerializer(all_data, many=True, context={'request': self.context['request']})
- return ro_info_serializer.data
-
- def get_rw_info(self, obj):
- all_data = TestResult.objects.filter(Q(test_record_id=obj.id) ,test_cate_id=2)
-
- rw_info_serializer = TestResultSerializer(all_data, many=True, context={'request': self.context['request']})
- return rw_info_serializer.data
+ def get_dataset_info(self, obj):
+ dataset_list = TestDataSet.objects.filter(test_record_id=obj.id).values_list('scale').annotate(Count('id'))
+ # print(target_dataset)
+
+ dataset = {}
+ # < QuerySet[(20, 2), (10, 4)] >
+ for item in dataset_list:
+ dataset[item[0]] = []
+ target_dataset = TestDataSet.objects.filter(test_record_id=obj.id, scale=item[0])
+ dataset_serializer = TestDataSetSerializer(target_dataset, many=True)
+ dataset[item[0]] = dataset_serializer.data
+ return dataset
+
+ # def get_ro_info(self, obj):
+ # all_data = TestResult.objects.filter(Q(test_record_id=obj.id ) ,test_cate_id=1)
+ #
+ # ro_info_serializer = TestResultSerializer(all_data, many=True, context={'request': self.context['request']})
+ # return ro_info_serializer.data
+ #
+ # def get_rw_info(self, obj):
+ # all_data = TestResult.objects.filter(Q(test_record_id=obj.id) ,test_cate_id=2)
+ #
+ # rw_info_serializer = TestResultSerializer(all_data, many=True, context={'request': self.context['request']})
+ # return rw_info_serializer.data
from rest_framework.documentation import include_docs_urls
from rest_framework.routers import DefaultRouter
-from test_records.views import TestRecordListViewSet, TestRecordDetailViewSet, TestRecordCreate
+from test_records.views import TestRecordListViewSet, TestRecordCreate, TestRecordDetailViewSet
from test_records.auth import MachineAuthToken
# from test_records.view_base import TestListView
# 'post': 'create'
# })
router = DefaultRouter()
-router.register(r'records', TestRecordListViewSet,base_name="records")
-router.register(r'detail', TestRecordDetailViewSet ,base_name="detail")
+router.register(r'records', TestRecordListViewSet, base_name="records")
+router.register(r'detail', TestRecordDetailViewSet, base_name="detail")
# router.register(r'detail', TestRecordListViewSet)
url(r'^', include(router.urls)),
# url(r'status/$', test_record_list, name='test-list'),
# url(r'status/$', TestListView.as_view(), name='test-list'),
-
+ # url(r'detail', TestRecordDetailViewSet ,name="detail"),
url(r'upload/$', TestRecordCreate, name='test-upload'),
url(r'docs/', include_docs_urls(title='pgperffarm')),
# Static pages