I have 2 items inside my system that I have to use.But I am trying to develop a system which i have to get them inside one view and order them by "timestamp".
class CalendarEventSerializer(serializers.ModelSerializer):
class Meta:
model = CalendarEvent
fields = ("id","author",...)
class CalendarItemSerializer(serializers.ModelSerializer):
class Meta:
model = CalendarItem
fields = ("id","author",...)
You can customize the login using APIView and Generic APIVIEW
class GetCalenderEventAndItemsAPIView(APIView, GenericAPIView):
permission_classes = (IsAuthenticated,)
item_queryset = CalendarItem.objects.all().order_by('-timestamp')
event_queryset = CalendarEvent.objects.all().order_by('-timestamp')
item_serializer_class = CalendarItemSerializer
event_serializer_class = CalendarEventSerializer
filterset_fields = ['author']
def get_paginated_query(self, _query_set):
page = self.paginate_queryset(self.filter_queryset(_query_set))
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
return page
def get(self, request, *args, **kwargs):
event_serializer = self.event_serializer_class(self.get_paginated_query(self.event_queryset),
many=True)
item_serializer = self.event_serializer_class(self.get_paginated_query(self.item_queryset), many=True)
response_results = {
"calendarevents": event_serializer.data,
"calendaritems": item_serializer.data
}
return Response(response_results)
You can add multiple models in Django by below method:
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.