from django.shortcuts import render, get_object_or_404, HttpResponse, HttpResponseRedirect from call.forms import CreatureForm from django.views import generic from .models import Creature from django.urls import reverse # from io import StringIO from PIL import Image def index(request): """ Main page of call, with 2bitcharactergenerator, receives POST to save a new creature """ if request.method == "POST": print ("post", request.POST) print ("files", request.FILES) form = CreatureForm(request.POST, request.FILES) # form = CreatureFormNo(request.POST, request.FILES) # formset = AuthorFormSet(request.POST, request.FILES) if form.is_valid(): print ("FORM IS VALID") form.save() return HttpResponseRedirect(reverse("statement", args=(form.instance.id,))) # do something. else: print ("FORM NOT VALID") else: form = CreatureForm() return render(request, "call/index.html", {"form": form}) class Guestbook(generic.ListView): """ public guestbook page """ paginate_by = 20 model=Creature template_name = "call/guestbook.html" queryset = Creature.objects.filter(published=True) class CreatureList(generic.ListView): """ public guestbook page """ paginate_by = 20 model=Creature template_name = "call/creature_list.html" queryset = Creature.objects.filter(published=True) class CreatureDetail(generic.DetailView): """ Generates Pixelated PNG of creature """ model = Creature template_name = "call/creature_detail.html" def creature_frame (request, creature_id): """ Generates Pixelated PNG of creature """ creature = get_object_or_404(Creature, pk=creature_id) im = Image.open(creature.image.path) response = HttpResponse(content_type="image/png") im.save(response, "PNG") return response