| | 4 | |
| | 5 | This document assumes a basic familiarity with [wiki:RemovingTheMagic Removing the magic] changes. It is designed to be used as a simple cheat sheet during a conversion process providing links to relevant parts [wiki:RemovingTheMagic Removing the magic] document. It is organized by functional areas: databases, settings, models, views, templates, and template tags. This document doesn't cover new functionality. |
| | 6 | |
| | 7 | == Pre-conversion == |
| | 8 | |
| | 9 | ''Optional (saves time):'' if your project doesn't have {{{manage.py}}} file in the project's directory, copy it from {{{django/conf/project_template/}}}. |
| | 10 | |
| | 11 | == Databases == |
| | 12 | |
| | 13 | Database changes are covered extensively in [wiki:RemovingTheMagic#Databasechangesyoullneedtomake Database changes you'll need to make]. Just execute appropriate SQL scripts. |
| | 14 | |
| | 15 | ''Optional (saves space):'' {{{package}}} column of {{{auth_permission}}} table is not used anymore. You can drop it by executing following SQL statement (works for MySQL): |
| | 16 | |
| | 17 | {{{ |
| | 18 | ALTER TABLE `auth_permission` DROP COLUMN `package`; |
| | 19 | }}} |
| | 20 | |
| | 21 | |
| | 22 | __Eugene's note__: after conversion I found that my permissions are screwed up. I regenerated them this way: |
| | 23 | |
| | 24 | * Delete a content of following tables (you can do it now): |
| | 25 | * {{{auth_group_permissions}}} |
| | 26 | * {{{auth_permissions}}} |
| | 27 | * {{{auth_user_user_permissions}}} |
| | 28 | * {{{django_content_type}}} |
| | 29 | * '''After you finished with code changes''', run {{{django-admin.py syncdb}}} or {{{manage.py syncdb}}}. '''Don't do it now!''' |
| | 30 | |
| | 31 | It repopulates the content of said tables properly, but an administrator has to reassign group and user permissions again in Admin. Obviously it can be a problem, if you have hundreds of users with arcane permissions. |
| | 32 | |
| | 33 | == Models == |
| | 34 | |
| | 35 | 1. If your applications still live in {{{yourproject/apps/}}} directory, you can move them up one level: move {{{yourproject/apps/yourapp/}}} to {{{yourproject/yourapp}}}. |
| | 36 | 1. [wiki:RemovingTheMagic#Modellocationchanged Relocate models] by moving content of files in your {{{yourapp/models/}}} directory to {{{yourapp/models.py}}} file. |
| | 37 | 1. If your models use {{{datetime}}} or {{{db}}} modules without exporting them directly, [wiki:RemovingTheMagic#Modelmethodsnolongerautomaticallyhaveaccesstodatetimeanddbmodules add import statements]. |
| | 38 | 1. [wiki:RemovingTheMagic#ModelclassandFieldclassesrenamed/relocated Relocate Model and Field classes]: use {{{django.db.models}}} instead of {{{django.core.meta}}}. |
| | 39 | 1. [wiki:RemovingTheMagic#MovedadminoptionstoclassAdmin Convert the META.admin member] to new inner {{{class Admin}}} of the model. Don't forget to remove all pesky commas at the end of lines. |
| | 40 | 1. [wiki:RemovingTheMagic#Changestomodelsyntax Remove from META] following parameters: {{{admin}}} (see the previous step), {{{module_name}}}, {{{exceptions}}}, {{{module_constants}}}, and {{{where_constraints}}}. If now your {{{class META}}} is empty, delete it. Otherwise rename it to {{{class Meta}}}. |
| | 41 | 1. [wiki:RemovingTheMagic#a__repr__modelmethodisreplacedby__str__ Replace __repr__ with __str__]. |
| | 42 | 1. If you use {{{_pre_save()}}}, {{{_post_save()}}}, {{{_pre_delete()}}}, and/or {{{_post_delete()}}} hooks, [wiki:RemovingTheMagic#Addedamorepowerfulwayofoverridingmodelmethodsremovedhardcoded_pre_save_post_saveetc. replace them] by overriding {{{save()}}} and {{{delete()}}} methods. |
| | 43 | |
| | 44 | == Views == |
| | 45 | == Templates == |
| | 46 | == Template tags == |
| | 47 | == Settings == |
| | 48 | |
| | 49 | == Post-conversion == |
| | 50 | |
| | 51 | If you decided to regenerate permissions, now is the good time to execute {{{django-admin.py syncdb}}} or {{{manage.py syncdb}}}. Remember that an administrator should reassign permissions to all users using Admin. |