admin_transporte_backend/project/api/views/paradero_imagen.py

34 lines
1.3 KiB
Python
Executable File

from rest_framework import generics, viewsets
from django_filters.rest_framework import DjangoFilterBackend
from django.http import HttpResponse, JsonResponse
from api.models import ParaderoImagen, Paradero
from api.serializers import ParaderoImagenSerializer
class ParaderoImagenListView(generics.ListAPIView, viewsets.ModelViewSet):
queryset = ParaderoImagen.objects.all()
serializer_class = ParaderoImagenSerializer
filter_backends = [DjangoFilterBackend]
filterset_fields = ['id_paradero', 'content_type']
def retrieve(self, request, pk):
data = 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 = 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 })