Django Richcomments
Django app extending the builtin comments framework for AJAX style commenting.
django-richcomments
wraps the Django's comments frameworks existing render_comment_list and render_comment_form template tags to make them behave AJAXy.
Contents
Installation
-
Install or add
django-richcomments
to your Python path. -
Configure Django's comments framework as described here.
-
Add richcomments url include to your project's
urls.py
file:(r'^richcomments/', include('richcomments.urls')),
-
Ensure
django-richcomments
static media is accessible, see managing static files.
Usage
django-richcomments
simply wraps the existing render_comment_list and render_comment_form template tags to make them behave AJAXy. Thus when a comment is submitted it is done via Javascript and an existing comment list is update without a page reload. You would customize your comment listing and form HTML as per normal. From a code perspective commenting behaves exactly the same as it normally does, except that the form generated by the render_comment_form
tag will be submitted via AJAX and comment lists generated by the render_comment_list
will be updated via AJAX after such a submit.
For richcomments to be active on a page both the jQuery and jQuery form plugin Javascript libraries needs to be loaded. Both are included as part of django-richcomments
static media and a shortcut template tag is provided for your convenience, i.e.:
{% load richcomments %} {% richcomments_static %}
which renders the following (with a static path as configured in your settings):
<script type="text/javascript" src="/static/richcomments/includes/jquery.min.js"></script> <script type="text/javascript" src="/static/richcomments/includes/jquery.form.js"></script>
To recap here's a simple example illustrating how you can display a list of comments as well as a comment form for an object which will be submitted and updated via AJAX:
{% load comments richcomments %} <html> <head> {% richcomments_static %} </head> <body> {% render_comment_list for object %} {% render_comment_form for object %} </body> </html>