[英]How can i get the id of each record in ListApiView in DRF
我在Django rest框架中獲取記錄ListApiView的promary_ket(id)時遇到問題。 我也在實施自定義分頁。
這是我的序列化器:
class AllTestListSerializer(serializers.ModelSerializer):
strip_img = serializers.FileField(required=False)
cropped_img = serializers.FileField(required=False)
class Meta:
model = TakeTestDetails
fields = ['strip_img',
'cropped_img',
'period_cd',
'date',
'time',
'test_type',
'test_result',
'cycle_id',
'raw_data']
這是我的ListApiView代碼:
class TestList(ListAPIView):
permission_classes = (IsAuthenticated, )
serializer_class = AllTestListSerializer
pagination_class = CustomPagination
def get_queryset(self):
return TakeTestDetails.objects.filter(user=self.request.user).order_by('date', 'time').all()
這是我的CustomPagination代碼:
class CustomPagination(pagination.PageNumberPagination):
def get_paginated_response(self, data):
response_data = {
'status': '200',
'message': 'Success',
'count': self.page.paginator.count,
'next': self.get_next_link(),
'previous': self.get_previous_link(),
}
if data:
new_cycle_data = []
for row in data:
row_dict = dict(row)
print(row)
cycle_id = row_dict['cycle_id']
cycle = TestCycle.objects.get(id=cycle_id)
cycle_no = cycle.cycle_no
cycle_start_date = cycle.cycle_start_date
cycle_end_date = cycle.cycle_end_date
cycle_start_date = change_date_format(cycle_start_date)
cycle_end_date = change_date_format(cycle_end_date)
test_date = change_date_format(row_dict['date'])
row_dict['date'] = test_date
row_dict['cycle_no'] = cycle_no
row_dict['cycle_start_date'] = cycle_start_date
row_dict['cycle_end_date'] = cycle_end_date
new_cycle_data.append(row_dict)
response_data['data'] = new_cycle_data
else:
return Response({
'status': '404',
'message': "You haven't performed any test yet",
'count': self.page.paginator.count,
'next': self.get_next_link(),
'previous': self.get_previous_link(),
'data': data
})
return Response(response_data)
現在我想要的也是獲取每行/記錄的primary_key / id。 但這並沒有給我數據中的ID。 我如何獲得身份證?
提前致謝
向序列化器添加ID
class AllTestListSerializer(serializers.ModelSerializer):
strip_img = serializers.FileField(required=False)
cropped_img = serializers.FileField(required=False)
class Meta:
model = TakeTestDetails
fields = ['id'
'strip_img',
'cropped_img',
'period_cd',
'date',
'time',
'test_type',
'test_result',
'cycle_id',
'raw_data']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.