I am not sure what you mean by taking you to post view of the function.
That aside, you need to include csrfmiddlewaretoken: '{{ csrf_token
}}' in your data: section.
data: {
'keyword': search_for,
'filter': rval,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
-Subodh
On Sun, Jul 14, 2013 at 8:19 AM, vijay shanker <[email protected]> wrote:
> Hey all
> I am trying to make a simple ajax call to show items retrieved from
> database.
> I am displaying bunch of fields like a text input for keyword and radio
> button for filter in a form like this:
>
> <form method="POST">{% csrf_token %}
> <input type="text" id="search" name="keyword"/>
> <button onclick="search()"> Search </button>
> </div>
> <div>
> <div>
> <input type="radio" name="fancy_radio" value="all"
> checked='checked'/>All
> <input type="radio" name="fancy_radio"
> value="paying"/>Paying
> <input type="radio" name="fancy_radio"
> value="uploaded"/>Uploaded
> <input type="radio" name="fancy_radio" value="uploaded"
> />Staff Pick
> </div>
> </form>
>
> This form is displayed by a function which inherits generic View class, from
> its get method.
>
> class Home(View):
> def get(self,request, *args, **kwargs):
> return render_to_response('items/search_page.html', context_instance
> = RequestContext(request) )
> def post(self, request, *args, **kwargs):
> print 'in home post'
>
> What puzzles me is that when i am trying to submit the form data via ajax
> call (on same page) with jquery when someone clicks on search button, it
> takes me to post view of Home and not on to other function i have defined.
> The javascript on the html page is:
> <script type="text/javascript">
> function search(e) {
> e.preventDefault();
> search_for = $("#search").val()
> rval = $('input:radio[name=fancy_radio]:checked').val()
> $.ajax({
> url:"/search/",
> method : "POST",
> data : { 'keyword': search_for, 'filter': rval },
> success:function(result){
> alert(result)
> }
> });
> }
> </script>
>
> why is this happening ?
>
> --
> 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.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
--
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.
For more options, visit https://groups.google.com/groups/opt_out.