2015-02-23 102 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

相关问题