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.
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! ;)