| Version 2 (modified by , 19 years ago) ( diff ) |
|---|
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
Database changes are covered extensively in Database changes you'll need to make. Just execute appropriate SQL scripts.
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_permissionsauth_permissionsauth_user_user_permissionsdjango_content_type
- After you finished with code changes, run
django-admin.py syncdbormanage.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: moveyourproject/apps/yourapp/toyourproject/yourapp. - Relocate models by moving content of files in your
yourapp/models/directory toyourapp/models.pyfile. - If your models use
datetimeordbmodules without exporting them directly, add import statements. - Relocate Model and Field classes: use
django.db.modelsinstead ofdjango.core.meta. - Convert the META.admin member to new inner
class Adminof the model. Don't forget to remove all pesky commas at the end of lines. - Remove from META following parameters:
admin(see the previous step),module_name,exceptions,module_constants, andwhere_constraints. If now yourclass METAis empty, delete it. Otherwise rename it toclass Meta. - Replace __repr__ with __str__.
- If you use
_pre_save(),_post_save(),_pre_delete(), and/or_post_delete()hooks, replace them by overridingsave()anddelete()methods.
Views
Templates
Template tags
Settings
Post-conversion
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.