def post(self, request): serialized = EditorialSerializer(data=request.data) if serialized.is_valid(): serialized.save() return Response(status=status.HTTP_200_OK, data=serialized.data) else: return Response(status=status.HTTP_400_BAD_REQUEST)
def put(self, request, id): try: editorial = Editorial.objects.get(id=id) except Editorial.DoesNotExist: return Response(status=status.HTTP_400_BAD_REQUEST) serialized = EditorialSerializer(editorial, data=request.data) if serialized.is_valid(): serialized.save() return Response(status=status.HTTP_200_OK, 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 editoriales(self, request, pk=None): libro = self.get_object() editoriales = Editorial.objects.filter(libro__id=libro.id) serialized = EditorialSerializer(editoriales, many=True) if not editoriales: return Response(status=status.HTTP_404_NOT_FOUND, data={'message': 'Este libro no tiene editorial'}) return Response(status=status.HTTP_200_OK, data=serialized.data)
def editorial(self, request, pk=None): """ Regresa la editorial del libro. """ libro = self.get_object() editorial = libro.editorial serialized = EditorialSerializer(editorial) return Response(status=status.HTTP_200_OK, data=serialized.data)
def get(self, request, id): try: editorial = Editorial.objects.get(id=id) except Editorial.DoesNotExist: return Response(status=status.HTTP_400_BAD_REQUEST) serialized = EditorialSerializer(editorial) 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 get(self, request): editoriales = Editorial.objects.all() serialized = EditorialSerializer(editoriales, many=True) return Response(status=status.HTTP_200_OK, data=serialized.data)
def editoriall(self, request, pk=None): libro = self.get_object() editorial = libro.editorial serilizer = EditorialSerializer(editorial) return Response(status=status.HTTP_200_OK, data=serilizer.data)