Question

I am relatively new to this, but I'm working through things. I want to get solid understanding of how things work.

That being said, I have been attempting to get Django to post comments with an ajax hook.

I thought I was close to accomplishing this but, nothing so far. I was able to write a view that would save a posted comment then redirect me to my main page. I want to be able to use ajax so that the comment would post in a facebook style.

def add_comment(request, pk):
  if request.method == 'POST' and request.is_ajax():
    comment_form = CommentForm(request.POST)
    if comment_form.is_valid():
      comment = comment_form.save(commit=True)
      comment.save()
    json = simplejson.dumps(comment, ensure_ascii=False)
   return HttpResponse(json, mimetype='application/json')
  return render_to_response(simplejson.dumps('{{ post.id }}', {'comment': comment,}), context_instance=RequestContext(request), mimetype='application/json')

This view is pretty rough right now. I don't have any calls to json but, read this might be the way to go.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script></javascript>
<script type="text/javascript">
  $(document).click(function()
  {
   $('#comment_form').submit(function()
   {
    var dataString = $('#comment_form').serialize();
    $.ajax({
      type: 'POST',
      url: '{{ post.id }}',
      data: dataString,
      success: function(data){
        $('{{ post.id }}').html(data);
      },
    });
    return false;
    });
  });

</script>

 <form action="" method="POST" id="comment_form">{% csrf_token %}
    <div id="cform">
      Name: {{ form.author }}
      <p>{{ form.body|linebreaks }}</p>
    </div>
    <div id="submit"><input type="submit" value="Submit"></div>
  </form>

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top