webentwicklung-frage-antwort-db.com.de

Django: Wie kann ich eine Ansichtsfunktion aus einer Vorlage aufrufen?

Ich habe eine Frage zum Aufrufen einer Ansichtsfunktion über eine HTML-Vorlagenschaltfläche. Wie eine Onclick-Funktion? Hier ist die Vorlage:

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

Und die views.py ist:

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

Vielen Dank.

23
Robert

Eine Option ist, dass Sie die Schaltfläche submit mit einem form umbrechen können.

Etwas wie das:

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

(Entfernen Sie die onclick und method)

Wenn Sie einen bestimmten Teil der Seite laden möchten, ohne die Seite neu zu laden, können Sie dies tun

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

und auf einem submit Listener

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

Angenommen, Sie möchten einen Wert aus der Benutzereingabe im HTML-Textfeld abrufen, wenn der Benutzer auf die Schaltfläche "Klicken" klickt, und rufen dann eine python function (mypythonfunction) auf, die Sie in mypythoncode.py geschrieben haben. Beachten Sie, dass die Klasse "btn" in einer CSS-Datei definiert ist.

in 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>

inside 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')
85
Mahshid Zeinaly

Wie wäre es damit:

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

Die Klasse enthält bootstrap Stile für Primärknopf.

9
mapadj

sie können die Eingabe in ein Formular wie folgt einfügen:

<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>
4
Nullify

Zum Beispiel kann ein Logout Button so geschrieben werden:

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

Wo Abmelden Endpunkt:

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