Добавляем два числа и показываем вывод на одной странице - PullRequest
0 голосов
/ 18 января 2020

Я новичок в Django, я не уверен, смогу ли я выполнить действие и показать результат на той же странице. Для этой страницы я хочу добавить два числа, которые введены в textarea a1 и a2 вместе, и вывести его в textarea a3.

Теперь ошибка показывает, что страница не найдена (404), я думаю, это как-то связано с моей маршрутизацией.

И если я создаю динамический c контент, подобный этому, следует Я использую VueJS или вместо этого реагирую?

Вот мое мнение:

def add(request):
    """The Cipher and Decipher page"""
    res = 0
    val1 = int(request.GET.get('a1', 0))
    val2 = int(request.GET.get('a2', 0))
    res = val1 + val2

    return render(request, 'morse_logs/add.html', {'result': res})

my html (add. html):

{% block content %}
<h1>Addition</h1>
    <form action="add">
        <textarea rows="10" cols="50" name='a1' ></textarea>
        <textarea rows="10" cols="50" name='a2' ></textarea>
        <button type="submit" name="add">Calculate</button>

        <textarea rows="10" cols="50" name="a3" >{{result}} </textarea>
    </form>
{% endblock content  %}

мой url.py:

app_name = 'morse_logs'

urlpatterns = [
    # Home Page
    path('', views.index, name='index'),
    # Page that shows all topics
    path('topics/', views.topics, name='topics'),
    # Page that do addition
    path('add/', views.add, name='add'),


]

1 Ответ

1 голос
/ 18 января 2020

В URL-адресе атрибута действия формы указывается, куда отправлять форму. У вас есть add здесь, который не является действительным URL. Вместо этого вы можете просто поставить "" здесь, чтобы показать, что форма будет отправлена ​​на текущий URL:

{% block content %}
<h1>Addition</h1>
    <form action="" method="get">
        <textarea rows="10" cols="50" name='a1' ></textarea>
        <textarea rows="10" cols="50" name='a2' ></textarea>
        <button type="submit" name="add">Calculate</button>

        <textarea rows="10" cols="50" name="a3" >{{result}} </textarea>
    </form>
{% endblock content  %}
...