【问题标题】:Success Message in Django Rest FrameworkDjango Rest 框架中的成功消息
【发布时间】:2019-02-19 08:11:12
【问题描述】:

我想发送成功messagestatusresult_count。返回响应时。类似于下面的 JSON 响应

{
"status":true,
"result_count":5,
"message":"Timesheet Retrieved Successfully.",
"result": [
{
    "user_id": "40",
    "user_name": "Derek Hedrick",
    "data": [
    {
        "timesheet_id": "2",
        "job_id": "11",
        "job_code": "rfyxlv",
        "clock_in": "2018-09-07T03:00",
        "clock_out": "2018-09-07T15:00"
        "note": "This is test note",
        "type":
        {
             "regular":"7",
             "overtime":"2"
         }
    },

但我得到这样的回应

[
    {
        "id": 1,
        "job_group": 1,
        "job_name": "RAJJUUU",
        "job_number": "hjhasfd",
        "job_description": "Json",
        "job_start_date": "2018-03-29",
        "job_start_time": "14:20:00",
        "job_end_date": "2018-03-29",
        "job_end_time": "14:20:00",
        "job_status": "Active",
        "job_created_on": "2019-01-28T08:32:47.327096Z"
    }
]

如何添加自定义消息。这是我的ListAPIView

class JobsListAPIView(generics.ListAPIView):
    serializer_class = JobListSerialzer
    # pagination_class = ListLimitOffsetPagination
    permission_classes = [UserIsAuthenticated]

    def get_queryset(self, *args, **kwargs):
        # print('self.request.auth', self.request.auth.application.user.userprofile.user_company.id)

        qs = Jobs.objects.exclude(job_is_deleted = True).filter(
            job_company = self.request.auth.application.company
        )

        start_date = self.request.query_params.get('start_date', None)
        end_date = self.request.query_params.get('end_date', None)
        job_name = self.request.query_params.get('job_name', None)


        if start_date is not None:
            qs=qs.filter(job_start_date=start_date)
        if end_date is not None:
            qs=qs.filter(job_end_date=end_date)
        if job_name is not None:
            qs=qs.filter(job_name=job_name)

        return qs

序列化器.py

class JobListSerialzer(serializers.ModelSerializer):
    class Meta:
        model = Jobs
        fields = [
            'id',
            'job_group',
            'job_name', 
            'job_number',
            'job_description',
            'job_start_date',
            'job_start_time',
            'job_end_date',
            'job_end_time',
            'job_status',
            'job_created_on',
        ]

【问题讨论】:

    标签: django django-models django-rest-framework django-views


    【解决方案1】:

    这将起作用:

    class JobsListAPIView(generics.ListAPIView):
        serializer_class = JobListSerialzer
        permission_classes = [UserIsAuthenticated]
    
        def get(self,request, *args, **kwargs):
            if request.method == 'GET':
    
                qs = Jobs.objects.exclude(job_is_deleted = True).filter(
                    job_company = self.request.auth.application.company
                )
    
                start_date = self.request.query_params.get('start_date', None)
                end_date = self.request.query_params.get('end_date', None)
                job_name = self.request.query_params.get('job_name', None)
    
                if start_date is not None:
                    qs=qs.filter(job_start_date=start_date)
                if end_date is not None:
                    qs=qs.filter(job_end_date=end_date)
                if job_name is not None:
                    qs=qs.filter(job_name=job_name)
                ax = self.serializer_class(qs, many=True)
                return Response (
                {
                    "message":"Jobs Retrieved Successfully.",
                    "status" : True,
                    "result": ax.data,
                    "result_count" : qs.count()
    
                    }
            )
    

    【讨论】:

      猜你喜欢
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 1970-01-01
      • 2020-01-19
      • 1970-01-01
      相关资源
      最近更新 更多