ojuso-map/apps/files/views.py
2018-04-30 22:23:36 -04:00

46 lines
1.2 KiB
Python

from django.core.exceptions import PermissionDenied
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import JsonResponse
from django.shortcuts import render
from django.views.generic import FormView, DetailView
from .forms import FileForm
from .models import File
class FileUploadView(LoginRequiredMixin, FormView):
model = File
form_class = FileForm
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.user = self.request.user
self.object.save()
return JsonResponse({
'is_valid': True, 'url': self.object.file.url,
'name': self.object.file.name,
'id': self.object.pk
})
def form_invalid(self, form):
return JsonResponse({'is_valid': False, 'errors': form.errors})
class FileDeleteView(LoginRequiredMixin, DetailView):
model = File
def get(self, request, *args, **kwargs):
return self.post(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
if request.user != self.object.user:
raise PermissionDenied
self.object.delete()
return JsonResponse({
'success': True
})