Как я могу получить переменные из django-шаблона? - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу получить значение переменной в моем коде Python из django-шаблона.У меня две кнопки 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", {})

Ответы [ 3 ]

1 голос
/ 03 апреля 2019

Вы можете переписать свой код следующим образом:

# 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 %}

И вы просмотрите файл .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 голосов
/ 03 апреля 2019

Отправить переменную слова по типу ввода скрыто или отправить по 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>
0 голосов
/ 03 апреля 2019

следующим образом

def test_view(request):
    answer = True if request.POST.get("Answer") == "yes" else False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...