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.


Reply via email to