我想从django-template的python代码中接收变量值。我有两个按钮Yes
和No
。当我单击其中一个按钮时,我的python代码必须接收此django变量并检查True
或False
。但我找不到如何获取这些变量的信息。这是我的HTML代码:
{% with word=words|random %}
<h1>{{ word }}</h1>
<h1>{{ word.word_ru }}</h1>
<form method="POST">
{% csrf_token %}
<input type="submit" value="no" name="Answer" >
<input type="submit" value="yes" name="Answer" >
{% endwith %}
这是我的python代码:
def index(request):
if request.method == "POST" and request.POST.get("Answer") == 'no':
return render(request, "training/training.html", {})
else:
return render(request, "training/training.html", {})
您可以像这样重写代码:
# template file
{% with word=words|random %}
<h1>{{ word }}</h1>
<h1>{{ word.word_ru }}</h1>
<form method="POST">
{% csrf_token %}
<input type="submit" value="no" name="answer_yes" >
<input type="submit" value="yes" name="answer_no" >
{% endwith %}
你的views.py文件:
# views file
def index(request):
if 'answer_yes' in request.POST:
my_answer = request.POST.get('answer_yes')
return render(request, "training/training.html", {'Answer': my_answer})
elif 'answer_no' in request.POST:
my_answer = request.POST.get('answer_no')
return render(request, "training/training.html", {'Answer': my_answer})
它应该工作,但我没有测试它。
编辑:
您可以隐藏您的变量,如下所示:
<input type="hidden" value={{ word }} name="word" >
然后,从此命令获取变量值:
if request.POST:
my_answer = request.POST.get('word')
如下
def test_view(request):
answer = True if request.POST.get("Answer") == "yes" else False
通过隐藏的输入类型发送单词变量或通过ajax发送。如果我理解正确,您想要向您的视图发送变量字吗?按钮值工作正常吗?
<form method="POST">
{% csrf_token %}
<input type="submit" value="no" name="Answer" >
<input type="submit" value="yes" name="Answer" >
<input type="hidden" value={{word}} name="word" >
</form>