2017-09-26 1 views
0

Ceci est du contenu de mon modèle Django.Appel d'une fonction Django python à partir d'un script de balise dans le modèle

... 
<a id="ID" href="">Do operation with database.<a/> 
... 
<script type="text/javascript"> 
        window.onload = function() { 
         var a = document.getElementById("ID"); 
         a.onclick = function() { 
          if (confirm("do you really want to perform task?")) { 
           /** call python function in order to perform some operations with database **/ 
          } 
          return; 
         } 
</script> 
... 

La fonction est par exemple (on peut imaginer la fonction est en views.py):
def performtask():
#do my operation with the database

Ma question est, comment il est possibile d'appeler la fonction performtask() de la balise de script dans mon modèle?

+1

Nah, le javascript est exécuté côté client. Vous devez envoyer une requête (par exemple AJAX) et gérer cette requête dans une vue afin d'exécuter du code sur le serveur. – schwobaseggl

Répondre

1

vous devez aller jusqu'au bout ajax

$.ajax({ 
     url: "http://abc,com/app/", 
     type: "POST", 
     data :{}, 
     success:function(result){ 
      //your code 
     }, 
     error:function(error){ 
      //error handal 
     } 
    }); 

vous pouvez obtenir plus de détails ici:

https://realpython.com/blog/python/django-and-ajax-form-submissions/

https://simpleisbetterthancomplex.com/tutorial/2016/08/29/how-to-work-with-ajax-request-with-django.html

+0

Quel est le contenu exact de la ligne d'URL? Je ne peux pas le comprendre –

+0

whaterver url que vous avez défini dans le fichier urls.py pour les vues correspondantes (méthode). comme ( url: "/ app /", url: "/ accounts /") – somil