forked from TDTP/admin_transporte_backend
34 lines
1.3 KiB
Python
Executable File
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 }) |