diff options
Diffstat (limited to 'parts/django/docs/ref/contrib/comments/upgrade.txt')
-rw-r--r-- | parts/django/docs/ref/contrib/comments/upgrade.txt | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/parts/django/docs/ref/contrib/comments/upgrade.txt b/parts/django/docs/ref/contrib/comments/upgrade.txt new file mode 100644 index 0000000..3d6b5af --- /dev/null +++ b/parts/django/docs/ref/contrib/comments/upgrade.txt @@ -0,0 +1,78 @@ +=============================================== +Upgrading from Django's previous comment system +=============================================== + +Prior versions of Django included an outdated, undocumented comment system. Users who reverse-engineered this framework will need to upgrade to use the +new comment system; this guide explains how. + +The main changes from the old system are: + + * This new system is documented. + + * It uses modern Django features like :doc:`forms </topics/forms/index>` and + :doc:`modelforms </topics/forms/modelforms>`. + + * It has a single ``Comment`` model instead of separate ``FreeComment`` and + ``Comment`` models. + + * Comments have "email" and "URL" fields. + + * No ratings, photos and karma. This should only effect World Online. + + * The ``{% comment_form %}`` tag no longer exists. Instead, there's now two + functions: ``{% get_comment_form %}``, which returns a form for posting a + new comment, and ``{% render_comment_form %}``, which renders said form + using the ``comments/form.html`` template. + + * The way comments are include in your URLconf have changed; you'll need to + replace:: + + (r'^comments/', include('django.contrib.comments.urls.comments')), + + with:: + + (r'^comments/', include('django.contrib.comments.urls')), + +Upgrading data +-------------- + +The data models for Django's comment system have changed, as have the +table names. Before you transfer your existing data into the new comments +system, make sure that you have installed the new comments system as +explained in the +:doc:`quick start guide </ref/contrib/comments/index>`. +This will ensure that the new tables have been properly created. + +To transfer your data into the new comments system, you'll need to directly +run the following SQL: + +.. code-block:: sql + + BEGIN; + + INSERT INTO django_comments + (content_type_id, object_pk, site_id, user_name, user_email, user_url, + comment, submit_date, ip_address, is_public, is_removed) + SELECT + content_type_id, object_id, site_id, person_name, '', '', comment, + submit_date, ip_address, is_public, not approved + FROM comments_freecomment; + + INSERT INTO django_comments + (content_type_id, object_pk, site_id, user_id, user_name, user_email, + user_url, comment, submit_date, ip_address, is_public, is_removed) + SELECT + content_type_id, object_id, site_id, user_id, '', '', '', comment, + submit_date, ip_address, is_public, is_removed + FROM comments_comment; + + UPDATE django_comments SET user_name = ( + SELECT username FROM auth_user + WHERE django_comments.user_id = auth_user.id + ) WHERE django_comments.user_id is not NULL; + UPDATE django_comments SET user_email = ( + SELECT email FROM auth_user + WHERE django_comments.user_id = auth_user.id + ) WHERE django_comments.user_id is not NULL; + + COMMIT; |