Porting to django_comments from django.contrib.comments

To move from django.contrib.comments to django_comments, follow these steps:

  1. Install the comments app by running pip install django-contrib-comments.

  2. In INSTALLED_APPS, replace 'django.contrib.comments' with 'django_comments'.

    INSTALLED_APPS = (
        ...
        'django_comments',
        ...
    )
    
  3. In your project’s urls.py, replace the url include django.contrib.comments.urls with 'django_comments.urls':

    urlpatterns = [
        ...
        url(r'^comments/', include('django_comments.urls')),
        ...
    ]
    
  4. If your project had customized the comments framework, then update your imports to use the django_comments module instead of django.contrib.comments. For example:

    from django.contrib.comments.models import Comment # old
    from django_comments.models import Comment # new
    
    from django.contrib.comments.forms import CommentForm # old
    from django_comments.forms import CommentForm # new
    
  5. If your database schema already contains the tables and data for existing comments and you get an error like django.db.utils.ProgrammingError: relation "django_comments" already exists in your first subsequent migration, run manage.py migrate django_comments --fake-initial.