我的 Views.py
class RelatedFacultyProfile(generics.ListAPIView):
serializer_class = FacultyProfileGenericSerializer
permission_classes = [IsAuthenticated]
def get_queryset(self):
helper = UserTypeHelper(self.request, path=False)
if helper.user_type == 'F':
queryset = Faculty.objects.filter(department=self.request.user.faculty.department)
if helper.user_type == 'S':
queryset = Faculty.objects.filter(department=self.request.user.student.branch)
return queryset
class RelatedStudentProfile(generics.ListAPIView):
serializer_class = StudentProfileGenericSerializer
permission_classes = [IsAuthenticated]
def get_queryset(self):
helper = UserTypeHelper(self.request, path=False)
if helper.user_type == 'F':
queryset = Student.objects.filter(branch=self.request.user.faculty.department)
if helper.user_type == 'S':
queryset = Student.objects.filter(branch=self.request.user.student.branch)
return queryset
我想結合這兩個視圖的查詢集來生成一個 JSON 回應,這將需要兩個不同的序列化程式那么如何實作呢?
uj5u.com熱心網友回復:
您應該嘗試使用DjangoRestMultipleModels包。專供您使用ObjectMultipleModelAPIView將是正確的選擇。它具有分頁的額外好處,因此您在查詢查詢集時可以獲得性能優勢。
另外,像這樣覆寫 get_querylist() 函式
def get_querylist(self):
helper = UserTypeHelper(self.request, path=False)
if helper.user_type == 'F':
querylist = [{'queryset': Faculty.objects.filter(department=self.request.user.faculty.department), 'serializer_class': FacultyProfileGenericSerializer},
{'queryset': Student.objects.filter(branch=self.request.user.faculty.department), 'serializer_class': StudentProfileGenericSerializer}]
if helper.user_type == 'S':
querylist = [{'queryset': Faculty.objects.filter(department=self.request.user.student.branch)), 'serializer_class': FacultyProfileGenericSerializer},
{'queryset': Student.objects.filter(branch=self.request.user.student.branch), 'serializer_class': StudentProfileGenericSerializer}]
return querylist
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/420192.html
標籤:
