fix save imagen paradero

master/backend
Francisco Sandoval 2023-09-09 08:55:23 -03:00
parent c5ba9f2000
commit 1c01f6b063
2 changed files with 24 additions and 51 deletions

View File

@ -1,51 +1,8 @@
from rest_framework import viewsets, filters from rest_framework import viewsets
from rest_framework.decorators import action, schema, api_view from api.serializers import ParaderoSerializer
from rest_framework.parsers import MultiPartParser from api.models import Paradero
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
import logging import logging
class ParaderoViewSet(viewsets.ModelViewSet): class ParaderoViewSet(viewsets.ModelViewSet):
queryset = models.Paradero.objects.all() queryset = Paradero.objects.all()
serializer_class = serializers.ParaderoSerializer serializer_class = 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 })
"""

View File

@ -1,7 +1,7 @@
from rest_framework import generics, viewsets from rest_framework import generics, viewsets
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from django.http import HttpResponse from django.http import HttpResponse, JsonResponse
from api.models import ParaderoImagen from api.models import ParaderoImagen, Paradero
from api.serializers import ParaderoImagenSerializer from api.serializers import ParaderoImagenSerializer
class ParaderoImagenListView(generics.ListAPIView, viewsets.ModelViewSet): class ParaderoImagenListView(generics.ListAPIView, viewsets.ModelViewSet):
@ -15,4 +15,20 @@ class ParaderoImagenListView(generics.ListAPIView, viewsets.ModelViewSet):
response = HttpResponse(content_type=data.content_type) response = HttpResponse(content_type=data.content_type)
response['Content-Disposition'] = 'inline' response['Content-Disposition'] = 'inline'
response.write(data.imagen) response.write(data.imagen)
return response 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 })