我如何从django-template接收变量?

问题描述 投票:0回答:3

我想从django-template的python代码中接收变量值。我有两个按钮YesNo。当我单击其中一个按钮时,我的python代码必须接收此django变量并检查TrueFalse。但我找不到如何获取这些变量的信息。这是我的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", {})
python django
3个回答
1
投票

您可以像这样重写代码:

# 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')

0
投票

如下

def test_view(request):
    answer = True if request.POST.get("Answer") == "yes" else False

0
投票

通过隐藏的输入类型发送单词变量或通过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>
© www.soinside.com 2019 - 2024. All rights reserved.