Arun, 

Do yourself some favors.

1. use jQuery for Ajax (or some other lib). You are doing it the very hard 
and not cross-browser compatible way.
2. use Django's template system for HTML generation.
3. if you do number 2 you can embed the CSRF token in the template render 
like you are supposed to.

-Aaron



On Thursday, December 26, 2013 1:10:42 PM UTC-5, Arun Kaushik wrote:
>
> I am a newbie. I am learning Django by developing a web application. There 
> is use-case where I got stuck. 
> there are 3 buttons on a html page
> *Personal info*
> *Education*
> *Work Experience*
> It is desired when the user click any of the button, respective html form 
> shall be displayed on right-half of web-page.
>
> *What I have tried is this, onclick function of buttons:*
> *    function myfun()*
> *{*
> * var xmlhttp;*
> *if (window.XMLHttpRequest)*
> *  {*
> *  xmlhttp=new XMLHttpRequest();*
> *  }*
> *else*
> *  {*
> *  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");*
> *  }*
> *xmlhttp.onreadystatechange=function()*
> *  {*
> *  if (xmlhttp.readyState==4 && xmlhttp.status==200)*
> *    {*
> *    document.getElementById("rightpan").innerHTML=xmlhttp.responseText;*
> *    }*
> *  }*
> *xmlhttp.open("GET","{% url "polls:demo_test" %}",true);*
> *xmlhttp.send();*
> *}*
> *</script>*
>
> *in views.py, demo test does this:*
>
> *def demo_test(request):*
> * return HttpResponse("<form name='reg' onsubmit='return 
> ValidateForm(this)' action='{% url 'polls:signupexec' %}' 
>  method='post'><tr><td><div>Firstname:</div></td><td><input type='text' 
> name='first_name' /></td></tr><tr><td><div>Lastname:</div></td><td><input 
> type='text' name='last_name' /></td></tr><tr><td><input name='submit' 
> type='submit' value='Submit' /></td></tr></form>")*
>
>
>    1. First of all, it works fine except that it *does not embed 
>    CSRF_TOKEN* in the form, which is important.
>    2. Secondly, I feel that this approach is against the philosophy of 
>    django.
>
> Please give some suggestions on how can I do this. Loading HTML Forms 
> dynamically through AJAX.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/4693cb5a-5c2f-43db-94df-c56988378b6d%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to