我嘗試創建一個基本的問答游戲。在 request.session['questions'] 中,我保存了我想要呈現的問題。
流程應該是:
問題 1 作為表單加載 --> 一旦用戶單擊下一個問題 2 應該呈現等等,直到 request.session['questions'] 為空。
下面的代碼我只能顯示 2 個第一個選項,我不知道為什么不能按預期作業。
def game(request):
if request.method == 'GET':
request.session['questions'] = ['question1','question2','question3','question4']
print(request.session['questions'])
q = request.session['questions'].pop(0)
form = QForm({'question':q})
print(request.session['questions'])
return render(request, 'game.html', {'form':form})
else:
if request.method == 'POST' and len(request.session['questions']) >0:
q= request.session['questions'].pop(0)
print(name)
form = QForm({'question':q})
return render(request, 'game.html', {'form':form})
else:
return redirect('home')
uj5u.com熱心網友回復:
視圖.py
def game(request):
questions = ['question1','question2','question3','question4']
if request.method == 'POST':
answer = request.POST['answer']
questions = request.POST['questions']
q_list = questions[1:-1].replace('\'', '').split(',')
q_list.pop(0)
if q_list:
questions = q_list
else:
questions = None
context = { 'questions': questions }
return render(request, 'game.html', context)
game.html 模板:
{% if questions %}
<form action="{% url 'your:url' %}" method="post">
{% csrf_token %}
<label for="question">{{questions.0}}</label>
<input
id="answer"
type="text"
name="answer"
placeholder="Enter your answer..."
>
<input type="hidden" name="questions" value="{{questions}}">
<input type="submit" value="OK">
</form>
{% else %}
Game Over
{% endif %}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/537800.html
標籤:姜戈会议django 视图django 表单
下一篇:會話未配置。怎么修?
