Skip to content Skip to sidebar Skip to footer

Django: Update Model Fields Using Ajax Call From Template

I have a model: class ok(models.Model): name = models.CharField(max_length=255) project = models.CharField(max_length=255) story = models.CharField(max_length=500)

Solution 1:

If I understood your problem correctly, in your template, do -

<inputtype="text"onkeyup="get_value()"name="third_value" /><script>functionget_value(){
      var val=document.getElementsByName("third_value")[0].value;
      var xhr=newXMLHttpRequest();
      xhr.open("GET","get_value_url?value="+val,true);
      xhr.onreadystatechange=function(){
         if(xhr.readyState == 4 && xhr.status == 200){
            var res=JSON.parse(xhr.responseText);
            // do something with this response like autofill
         }
      }
      xhr.send(null);
}
</script>

Where as your view will look similar to what you already have. Like -

def get(request):
   val = request.GET["value"]
   # query your db and prepare response datareturn JsonResponse(response)

Of course you would want to set some timeout in your template so that it does not query everytime user presses a button.

Hope this helps.

Post a Comment for "Django: Update Model Fields Using Ajax Call From Template"