def post(self, request): serialized = AutorSerializer(data=request.data) if serialized.is_valid(): serialized.save() return Response( status=status.HTTP_201_CREATED, data=serialized.data ) else: return Response(status=status.HTTP_400_BAD_REQUEST)
class LibroSerializer(serializers.ModelSerializer): autores = AutorSerializer(many=True, read_only=True) editorial = EditorialSerializer(read_only=True) class Meta: model = Libro fields = ('titulo', 'autores', 'editorial', 'id')
def get(self, request): autores = Autor.objects.all() serialized = AutorSerializer(autores, many=True) return Response( status=status.HTTP_200_OK, data=serialized.data )
def autores(self, request, pk=None): libro = self.get_object() autores = Autor.objects.filter(libro__id=libro.id) serialized = AutorSerializer(autores, many=True) if not autores: return Response(status=status.HTTP_404_NOT_FOUND, data={'message': 'Este libro no tiene autor'}) return Response(status=status.HTTP_200_OK, data=serialized.data)
def patch(self, request, id): try: autor = Autor.objects.get(id=id) except Autor.DoesNotExist: return Response(status=status.HTTP_400_BAD_REQUEST) serialized = AutorSerializer( autor, data=request.data, partial=True ) if serialized.is_valid(): serialized.save() return Response( status=status.HTTP_200_OK, data=serialized.data )
class LibroSerializer(serializers.ModelSerializer): """ General purpose Libro serializer """ autores = AutorSerializer(many=True, read_only=True) editorial = EditorialSerializer(read_only=True) class Meta: model = Libro fields = ('titulo', 'autores', 'editorial', 'fecha_publicacion')
def autores(self, request, pk=None): """ Regresa los autores de un libro. """ # /libros/1/autores libro = self.get_object() # => Libro.objects.get(id=1) autores = libro.autores.all() # autores = Autor.objects.filter(libro__id=libro.id) serialized = AutorSerializer(autores, many=True) return Response(status=status.HTTP_200_OK, data=serialized.data)
def get(self, request, id): try: autor = Autor.objects.get(id=id) except Autor.DoesNotExist: return Response(status=status.HTTP_400_BAD_REQUEST) serialized = AutorSerializer(autor) return Response( status=status.HTTP_200_OK, data=serialized.data )
def autores(self,request,pk=None): libro= self.get_object() serialized=AutorSerializer(libro.autores, many=True) return Response(status=status.HTTP_200_OK,data=serialized.data)