You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.9 KiB
Python

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