2015-02-23 36 views
3

串行:如何ORDER_BY添加到自定義序列字段Django的REST框架

class RequestSerializer(serializers.ModelSerializer): 

    travel_date = serializers.SerializerMethodField(method_name='get_traveldate') 
    guests = serializers.SerializerMethodField(method_name='get_num_of_guests') 
    cost = serializers.SerializerMethodField(method_name='get_invoice_cost') 
    status = serializers.SerializerMethodField(method_name='get_request_status') 

    class Meta: 
     model = Request 
     fields = (guests, cost,) 


class BookingView(generics.ListApiView): 

    serializer_class = RequestSerializer 
    model = serializer_class.Meta.model 
    paginate_by = 15 
    filter_fields = ('costs', 'guests') 

    def get_queryset(self): 
     req_dict = self.request.query_params 
     client = int(req_dict.get('client')) 
     start_date = date(int(req_dict.get('from_year')), int(req_dict.get('from_month')), 1) 
     end_date = get_end_date(int(req_dict.get('to_year')), int(req_dict.get('to_month'))) 
     requests = Request.objects.filter(guests__company__id=client, check_in__gte=start_date, 
              check_out__lte=end_date) 

     return requests 

回答

0

您可以在MethodField S的邏輯移到類請求經理

一旦你在管理器中擁有了它們,它們就可以用於每個對象(序列化器,視圖...),並且你可以使用它來進行排序。

This is link will be helpful to it

相關問題