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