Please use the bleeding-edge Django!

Feb 9th 2008

A few people have emailed me saying they get an error when trying to install Surftrackr. If your installation complains about an "unexpected keyword argument", you need to upgrade to the latest Django from their subversion repository.

Basically, the error looks like this (thanks to Humberto for the details):

after step:    ./manage.py syncdb

Error: Couldn't install apps, because there were errors in one or more models:
surftrackr.log: __init__() got an unexpected keyword argument 'max_length'
surftrackr.wordsearch: __init__() got an unexpected keyword argument 'max_length'
surftrackr.preferences: __init__() got an unexpected keyword argument 'max_length' 

This happens because the Django developers are switching from maxlength to the max_length keyword to specify the length of character fields. In the development version, Django deprecates maxlength in favour of max_length (which Surftrackr uses). Releases prior to the development version don't understand max_length, hence the problem.

If you installed Django from a tar-ball or using your system's package manager (eg apt-get or yum, etc), please follow the instructions on the Django website to install the latest version from subversion.

This is less of a problem than you might think - as far as I know, I've never had a bug or a problem with the latest version of Django. The quality is very high and the feature-set improves all the time. Surftrackr makes use of those features so please, if you can, install Django from subversion.

Another advantage of this approach is the extreme ease with which Django can be updated. You just 'cd' into the directory where you installed it and type svn up. Easy.