Несколько последовательных ответов на один вопрос на одной странице (POST-запрос, django)
Я очень новичок в django и мне нужна помощь в структурировании проекта.
Я хотел бы сделать страницу (одну страницу), которая показывает изображение человека, пользователь должен узнать человека и написать его имя в поле. Ответ обрабатывается, и если он неправильный, игрок может попробовать еще раз.
Я могу сделать это на двух страницах (выбрать изображение, показать изображение, принять ответ; затем показать вердикт, вернуться). Но я не могу понять структуру представления индекса для того, чтобы сделать все это на одной странице
Итак, страница должна вести себя по-разному, если ответ уже был дан, или нет; если нет, она должна взять случайное изображение и показать его; если да, она должна сравнить результат POST запроса с переменной. Как мне это написать?
Вот views.py :
from django.http import HttpResponse
from django.template import loader, Context, Template
from .models import Mystere, Image, Indice
from .forms import Prop
from django.shortcuts import get_object_or_404, render
from scripts import load_data
def index(request):
template = loader.get_template('home.html')
load_data.run()
global p, i
p = Mystere.objects.create(id=0)
i = Image.objects.all().first()
i = i.image
p = Mystere.objects.all().last()
p = p.individu
rep=Prop()
context = {'question': i,
'form': rep,
}
return HttpResponse(template.render(context, request))
def reponse(request):
# proposition = request.POST['proposition']
# if proposition == p:
# return HttpResponse('Bravo !')
# else:
# return HttpResponse("Perdu ! C'était %s." % p)
if request.method == 'POST':
rep = Prop(request.POST)
if rep.is_valid():
rep=rep.cleaned_data[]
if rep == p:
return HttpResponse('Bravo !')
else:
return HttpResponse("Perdu ! C'était %s." % p)