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_permissions
auth_permissions
auth_user_user_permissions
django_content_type
- After you finished with code changes, run
django-admin.py syncdb
ormanage.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.py
file. - If your models use
datetime
ordb
modules without exporting them directly, add import statements. - Relocate Model and Field classes: use
django.db.models
instead ofdjango.core.meta
. - 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. - Remove from META following parameters:
admin
(see the previous step),module_name
,exceptions
,module_constants
, andwhere_constraints
. If now yourclass META
is 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.