Pierwsze próby z django-cms

Jak już pisałem, postanowiłem wypróbować Django CMS.
Ustawiłem wirtualne środowisko pythona i CMS pięknie się zainstalował poprzez easy_install django-cms.
Na początek wymyśliłem, że potestuję go na sqlite. Postanowiłem pierwsze próby wykonać na aplikacji example dostarczonej razem z 'dystrybucją' django-cms.

Pierwsza niespodzanka polegała na tym, że syncdb nie wystarczy:

Not synced (use migrations):
 - cms.plugins.text
 - cms.plugins.picture
 - cms.plugins.file
 - cms.plugins.flash
 - cms.plugins.link
 - cms.plugins.snippet
 - cms.plugins.googlemap
 - cms.plugins.teaser
 - cms.plugins.video
 - cms.plugins.twitter
 - cms
(use ./manage.py migrate to migrate these)

easy_install jest na tyle inteligentny, że narzędzie do migracji (south) już było zainstalowane.
Następna niespodzianka polegała na tym, że po kilku migracjach wszystko się wywaliło:

Traceback (most recent call last):
  File "manage.py", line 13, in <module>
    execute_manager(settings)
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 362, in execute_manager
    utility.execute()
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 303, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.5/site-packages/django/core/management/base.py", line 195, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/python2.5/site-packages/django/core/management/base.py", line 222, in execute
    output = self.handle(*args, **options)
  File "/home/michal/PythonEnvs/DjangoTestEnv/lib/python2.5/site-packages/South-0.6.2-py2.5.egg/south/management/commands/migrate.py", line 91, in handle
    skip = skip,
  File "/home/michal/PythonEnvs/DjangoTestEnv/lib/python2.5/site-packages/South-0.6.2-py2.5.egg/south/migration.py", line 581, in migrate_app
    result = run_forwards(mapp, [mname], fake=fake, db_dry_run=db_dry_run, verbosity=verbosity)
  File "/home/michal/PythonEnvs/DjangoTestEnv/lib/python2.5/site-packages/South-0.6.2-py2.5.egg/south/migration.py", line 388, in run_forwards
    verbosity = verbosity,
  File "/home/michal/PythonEnvs/DjangoTestEnv/lib/python2.5/site-packages/South-0.6.2-py2.5.egg/south/migration.py", line 329, in run_migrations
    runfunc(orm)
  File "/home/michal/PythonEnvs/DjangoTestEnv/lib/python2.5/site-packages/django_cms-2.0.0.RC2-py2.5.egg/cms/migrations/0005_mptt_added_to_plugins.py", line 10, in forwards
    db.add_column('cms_cmsplugin', 'tree_id', models.PositiveIntegerField(db_index=True, editable=False))
  File "/home/michal/PythonEnvs/DjangoTestEnv/lib/python2.5/site-packages/South-0.6.2-py2.5.egg/south/db/sqlite3.py", line 129, in add_column
    raise ValueError("You cannot add a null=False column without a default value.")
ValueError: You cannot add a null=False column without a default value.

Zmieniłem bazę na mysql i migracja dokończyła się bez problemu.

Można już w tym momencie uruchomić serwer deweloperski i bawić się panelem admina.

Próba dodania nowej strony kończy się następną niespodzianką:

Template error
 
In template /home/michal/PythonEnvs/DjangoTestEnv/lib/python2.5/site-packages/django_cms-2.0.0.RC2-py2.5.egg/cms/templates/admin/cms/page/change_form.html, error at line 240
Caught an exception while rendering: admin/page_submit_line.html

Okazuje się, że problem jest już opisany :) http://groups.google.ch/group/django-cms/browse_thread/thread/307e9e4c88...

Tym razem jednak easy_install nie zdał egzaminu, bo zainstalował RC2 zamiast najnowszej - RC3 ;)

RC3 nie ma tego błędu, jednakże po dodaniu strony i próbie opublikowania wszystkie strony z panelu admina zniknęły!
Dość, chyba jednak napiszę własny, będzie szybciej ;) Przypomina mi to wierszyk o żółwiu, który chciał jechać koleją. Nie wiedziałem, że może on mieć takie "głębokie" znaczenie! ;)