Migration to magic-removal
Today I converted three web sites to the latest Django’s trunk formerly known as the magic-removal branch. It was a very positive experience in general. New Database API with lazy database queries (courtesy of QuerySet
) rocks! Direct interaction with model classes allows doing a lot of things much simpler than it was before. A lot of small improvements, which makes a big difference like explicit template extensions (use whatever is appropriate for your content), more transparent new Admin inner class, natural overriding of model methods (no more _pre_save()
and _post_save()
hooks!), and, of course, no more pluralization guessing.
I encountered exactly three small problems during the conversion:
- RemovingTheMagic is a formidable encyclopedia of changes but it is difficult to use it as a cheatsheet for the conversion, because it is not organized by functional areas, and requires modifying files in several passes. I filed the enhancement ticket #1786.
- I had small problems modifying users and groups after the conversion. Instead of change screeens I started to get 404 pages without any helpful traces. I had to regenerate permission tables. The enhancement ticket #1787 shows how I did that.
- I found
get_list_or_404()
being less flexible than before. I used to pass in__ne
andorder_by
kwargs, which I cannot do anymore, because they are not recognized as proper keywords. I had to do it manually withexclude()
andorder_by()
, which was not a big deal becauseget_list_or_404()
has a very small body.
In general the whole process was painless and left me completely satisfied with the outcome and code changes. Thanks to all contributors, who made it possible!