Подтвердить что ты не робот

Django: Как я могу вызвать функцию просмотра из шаблона?

У меня вопрос о том, как вызвать функцию просмотра из HTML-кнопки шаблона? Как функция onclick? Вот шаблон:

<input id="submit" type="button" onclick="xxx" method="post" value="Click" />

И view.py:

def request_page(request):
    ...do something...
    return render_to_response("/directory.html", {})

Большое спасибо.

4b9b3361

Ответ 1

Один из вариантов: вы можете обернуть кнопку submit с помощью form

Что-то вроде этого:

<form action="{% url path.to.request_page %}" method="POST">
    <input id="submit" type="button" value="Click" />
</form>

(удалите onclick и method)

Если вы хотите загрузить определенную часть страницы, без перезагрузки страницы, вы можете сделать

<input id="submit" type="button" value="Click" data_url/>

и на прослушивателе submit

$(function(){
     $('form').on('submit', function(e){
         e.preventDefault();
         $.ajax({
             url: $(this).attr('action'),
             method: $(this).attr('method'),
             success: function(data){ $('#target').html(data) }
         });
     });
});

Ответ 2

Предполагая, что вы хотите получить значение из пользовательского ввода в текстовом поле html всякий раз, когда пользователь нажимает кнопку 'Click', а затем вызывает функцию python (mypythonfunction), которую вы написали внутри mypythoncode.py. Обратите внимание, что класс "btn" определен в файле css.

внутри templateHTML.html:

<form action="#" method="get">
 <input type="text" value="8" name="mytextbox" size="1"/>
 <input type="submit" class="btn" value="Click" name="mybtn">
</form>

внутри view.py:

import mypythoncode

def request_page(request):
  if(request.GET.get('mybtn')):
    mypythoncode.mypythonfunction( int(request.GET.get('mytextbox')) )
return render(request,'myApp/templateHTML.html')

Ответ 3

Как насчет этого:

<a class="btn btn-primary" href="{% url 'url-name'%}">Button-Text</a>

В класс включены стили начальной загрузки для основной кнопки.

Ответ 4

вы можете поместить ввод внутри формы следующим образом: -

<script>
    $(document).ready(function(){
        $(document).on('click','#send', function(){
            $('#hid').val(data)
            document.forms["myForm"].submit();
        })
    })
</script>

<form id="myForm" action="/request_page url/" method="post">
    <input type="hidden" id="hid" name="hid"/>
</form>
<div id="send">Send Data</div>

Ответ 5

Например, кнопка выхода может быть записана следующим образом:

<button class="btn btn-primary" onclick="location.href={% url 'logout'%}">Logout</button>

Где конечная точка выхода:

#urls.py:
url(r'^logout/$', auth_views.logout, {'next_page': '/'}, name='logout'),

Ответ 6

Для удаления всех данных:

HTML файл

  class="btn btn-primary" href="{% url 'delete_product'%}">Delete

Поместите приведенный выше код в тег привязки. (тег!)

url.py

path('delete_product', views.delete_product, name='delete_product')]

views.py

def delete_product(request):
    if request.method == "GET":
        dest = Racket.objects.all()
        dest.delete()
        return render(request, "admin_page.html")