Конечно, возможно иметь 2 (или любое количество) сериализатора для модели.И вы на правильном пути.То, что вы хотите, - это отображение разных URL на разные виды.Так что в вашем случае это может быть что-то вроде следующего:
Обратите внимание, что я превратил каждый из ваших сериализаторов в ModelSerializer
.
path-to / serializer.py
class UserInformationSerializer(serializers.ModelSerializer):
class Meta:
model = InformationRequest
fields = ('first_name', 'last_name')
class ContactDetailsSerializer(serializers.ModelSerializer):
class Meta:
model = InformationRequest
fields = ('phone', 'email')
Далее у нас есть 2 разных URL, которые указывают на 2 разных представления:
path-to / urls.py
urlpatterns = [
url(r'^requests/(?P<pk>\d+)/user-information/$', views.UserInformationDetail.as_view()),
url(r'^requests/(?P<pk>\d+)/contact-details/$', views.ContactInformationDetail.as_view()),
# ... other urls
]
И, наконец,сами виды (для удобства я использую RetrieveAPIView
)
path-to / views.py
class UserInformationDetail(generics.RetrieveAPIView):
queryset = InformationRequest.objects.all()
serializer_class = UserInformationSerializer
class ContactInformationDetail(generics.RetrieveAPIView):
queryset = InformationRequest.objects.all()
serializer_class = ContactDetailsSerializer