Quiero crear dos puntos finales /comments/ y /comments/requests/ o algo por el estilo. El primero muestra tus comentarios y el segundo muestra tus comentarios pendientes (Comentarios que te enviaron personas que debes aprobar). Ambos trabajan con un modelo de comentarios. ¿Cómo podría lograr esto en Django Rest Framework?
En este momento, mi opinión es
class CommentsListview(APIView): serializer_class = CommentSerializer def get(self, request, format=None): comments, _, _, = Comments.get_comment_users(request.user) comments_serializer = CommentSerializer(comments, many=True) return Response({'comments': comments_serializer.data}) def requests(sel,f request, format=None): _, requests, _ = Comments.get_comment_users(request.user) requests_serializer = CommentSerializer(requests, many=True) return Response({'requests': requests_serializer.data}) Me gustaría permitir que un usuario vaya a localhost:8000/comments/ para ver sus comentarios y localhost:8000/comments/requests/ para ver sus solicitudes de comentarios pendientes. Como no he podido resolver esto, la única otra solución sería requerir que el usuario cambie el comportamiento del punto final usando un parámetro como indicador /comments/?requests=True pero eso parece descuidado.
use el decorador list_route y genericviewset
from rest_framework import viewsets from rest_framework.decorators import list_route class CommentsListview(viewsets.GenericViewSet): serializer_class = CommentSerializer def list(self, request, format=None): comments, _, _, = Comments.get_comment_users(request.user) comments_serializer = CommentSerializer(comments, many=True) return Response({'comments': comments_serializer.data}) @list_route() def requests(sel,f request, format=None): _, requests, _ = Comments.get_comment_users(request.user) requests_serializer = CommentSerializer(requests, many=True) return Response({'requests': requests_serializer.data})/comments/ método list llamadas/comments/requests/ llamará al método requeststambién mire los documentos de GenericViews y ViewSet , podría ser útil