簡體   English   中英

我如何在DRF中獲取ListApiView中每個記錄的ID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM