34

我对如何从模板 HTML 按钮调用视图函数有疑问?像 onclick 功能?这是模板:

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

views.py 是:

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

非常感谢。

4

6 回答 6

109

假设您想在用户单击“单击”按钮时从 html 文本框中的用户输入中获取一个值,然后调用您在 mypythoncode.py 中编写的 python 函数 (mypythonfunction)。请注意,“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>

内部视图.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')
于 2013-11-04T04:04:36.790 回答
15

一种选择是,您可以submitform

像这样的东西:

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

(删除onclickmethod

如果您想加载页面的特定部分,而不需要重新加载页面 - 您可以这样做

<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) }
         });
     });
});
于 2013-07-11T16:50:44.230 回答
11

这个怎么样:

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

该类包括主按钮的引导样式。

于 2016-09-03T17:37:48.010 回答
5

您可以将输入放在这样的表单中:-

<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>
于 2013-07-11T16:57:04.713 回答
4

例如,注销按钮可以这样写:

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

注销端点在哪里:

#urls.py:
url(r'^logout/$', auth_views.logout, {'next_page': '/'}, name='logout'),
于 2018-01-15T15:51:45.660 回答
3

删除所有数据:

文件

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

将上面的代码放在一个锚标记中。(a标签!)

网址.py

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

视图.py

def delete_product(request):
    if request.method == "GET":
        dest = Racket.objects.all()
        dest.delete()
        return render(request, "admin_page.html")
于 2019-10-05T13:04:30.910 回答