Context Navigation

Removing the magic: the cheat sheet

Work in progress.

This document assumes a basic familiarity with Removing the magic changes. It is designed to be used as a simple cheat sheet during a conversion process providing links to relevant parts 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.

Pre-conversion

Optional (saves time): if your project doesn't have manage.py file in the project's directory, copy it from django/conf/project_template/.

Databases

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):

ALTER TABLE `auth_permission` DROP COLUMN `package`;

Eugene's note: after conversion I found that my permissions are screwed up. I regenerated them this way:

Delete a content of following tables (you can do it now):

auth_group_permissions

auth_permissions

auth_user_user_permissions

django_content_type

After you finished with code changes, run manage.py syncdb. Don't do it now'''

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.

Models

If your applications still live in yourproject/apps/ directory, you can move them up one level: move yourproject/apps/yourapp/ to yourproject/yourapp.

Post-conversion

Debug your changes using manage.py validate and manage.py runserver. If there are any problems, please refer to the appropriate section of this document to verify your changes, and consult Removing the magic.

If you decided to regenerate permissions (see the Pre-conversion section above), now is the good time to execute manage.py syncdb. Remember that an administrator should reassign permissions to all users using Admin.