From 1c01f6b063a301ec7a988dcf16dc8f0b0bd88173 Mon Sep 17 00:00:00 2001 From: Francisco Sandoval Date: Sat, 9 Sep 2023 08:55:23 -0300 Subject: [PATCH] fix save imagen paradero --- project/api/views/paradero.py | 53 +++------------------------- project/api/views/paradero_imagen.py | 22 ++++++++++-- 2 files changed, 24 insertions(+), 51 deletions(-) diff --git a/project/api/views/paradero.py b/project/api/views/paradero.py index 4578be1..0fa7111 100755 --- a/project/api/views/paradero.py +++ b/project/api/views/paradero.py @@ -1,51 +1,8 @@ -from rest_framework import viewsets, filters -from rest_framework.decorators import action, schema, api_view -from rest_framework.parsers import MultiPartParser -from rest_framework.generics import ListAPIView -from django.http import JsonResponse, HttpResponse -from django_filters.rest_framework import DjangoFilterBackend - -from .. import models, serializers -from ..schemas import ParaderoImageSchema -from PIL import Image -import io -import coreapi +from rest_framework import viewsets +from api.serializers import ParaderoSerializer +from api.models import Paradero import logging class ParaderoViewSet(viewsets.ModelViewSet): - queryset = models.Paradero.objects.all() - serializer_class = serializers.ParaderoSerializer - -# class ParaderoImagenListView(ListAPIView): -# queryset = models.ParaderoImagen.objects.all() -# serializer_class = serializers.ParaderoImagenSerializer -# filter_backends = [filters.SearchFilter] -# search_fields = ['id_paradero'] - - - - -""" - def retrieve(self, request, pk): - data = models.ParaderoImagen.objects.filter(id_paradero_imagen = pk).first() - response = HttpResponse(content_type=data.content_type) - response['Content-Disposition'] = 'inline' - response.write(data.imagen) - return response - - def create(self, request, pk = None): - imagen = request.FILES['imagen'] - id_paradero = request.data.get('id_paradero') - content_type = imagen.content_type - imagen_bytea = imagen.read() - - paradero = models.Paradero.objects.filter(id_paradero = id_paradero).first() - - paradero_imagen = models.ParaderoImagen( - id_paradero = paradero, - imagen = imagen_bytea, - content_type = content_type - ) - paradero_imagen.save() - return JsonResponse({ 'ok': True }) -""" \ No newline at end of file + queryset = Paradero.objects.all() + serializer_class = ParaderoSerializer \ No newline at end of file diff --git a/project/api/views/paradero_imagen.py b/project/api/views/paradero_imagen.py index 166d94b..ec660cb 100644 --- a/project/api/views/paradero_imagen.py +++ b/project/api/views/paradero_imagen.py @@ -1,7 +1,7 @@ from rest_framework import generics, viewsets from django_filters.rest_framework import DjangoFilterBackend -from django.http import HttpResponse -from api.models import ParaderoImagen +from django.http import HttpResponse, JsonResponse +from api.models import ParaderoImagen, Paradero from api.serializers import ParaderoImagenSerializer class ParaderoImagenListView(generics.ListAPIView, viewsets.ModelViewSet): @@ -15,4 +15,20 @@ class ParaderoImagenListView(generics.ListAPIView, viewsets.ModelViewSet): response = HttpResponse(content_type=data.content_type) response['Content-Disposition'] = 'inline' response.write(data.imagen) - return response \ No newline at end of file + return response + + def create(self, request, pk = None): + imagen = request.FILES['imagen'] + id_paradero = request.data.get('id_paradero') + content_type = imagen.content_type + imagen_bytea = imagen.read() + + paradero = Paradero.objects.filter(id_paradero = id_paradero).first() + + paradero_imagen = ParaderoImagen( + id_paradero = paradero, + imagen = imagen_bytea, + content_type = content_type + ) + paradero_imagen.save() + return JsonResponse({ 'ok': True }) \ No newline at end of file