mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	git-svn-id: http://code.djangoproject.com/svn/django/trunk@8667 bcc190cf-cafb-0310-a4f2-bffc1f526a37
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| .. _ref-contrib-comments-upgrade:
 | |
| 
 | |
| ===============================================
 | |
| 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 :ref:`forms <topics-forms-index>` and
 | |
|       :ref:`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.
 | |
| 
 | |
| 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
 | |
| :ref:`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, 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;
 |