Django: вызов метода после нажатия кнопки - PullRequest
0 голосов
/ 19 февраля 2020

Я искал этот ответ, но никто не оправдал мои ожидания. Итак, в моем шаблоне у меня есть контент и я хочу добавить кнопку (которая позже добавит в избранное). После нажатия я хочу вызвать метод из моего views.py и перенаправить на другое представление.

my views.py

def home(request):
    //logic here
    request.session['url'] = url
    return render(request,'file.html')

def function_to_call(request):
    ///logic here
    url = request.session.get('url')
    return render(request,'second_file.html',url=url)

файл. html

<form action="{% url 'function_to_call' %}">
    <button id="submit" type="button" value="Click" />
</form>

и в моем urls.py

url(r'^function_to_call/',views.function_to_call,name='function_to_call'),

К сожалению, после нажатия на кнопку ничего не происходит

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

, если вы не отправляете форму, вы должны использовать

 <a href="{% url 'function_to_call' %}">Click</a>
0 голосов
/ 19 февраля 2020

Если по какой-то причине вам нужно использовать запрос POST, а не GET, это будет работать:

<form method="POST" action="{% url 'function_to_call' %}">
    <button id="submit" type="submit" value="Click" />
</form>

Использование сообщения может быть полезным, если вы не хотите включать данные в строку запроса, потому что это немного менее безопасно, чем наличие параметров в теле запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...