2010-12-14 13 views
3

Ich entschied mich, zu django-cms zu schauen. bei der Dokumentation Nachdem ich geklont ich das RepositoryWie starte ich ein Django cms Projekt

git clone https://github.com/divio/django-cms.git 

Dann mit ich es

mit installiert
sudo python setup.py install 

Ich habe bereits django 1.2.3 installiert. Ich zog in die example Verzeichnis ein RAN syncdb, das die folgenden Tabellen erstellt:

Creating table auth_permission 
Creating table auth_group_permissions 
Creating table auth_group 
Creating table auth_user_user_permissions 
Creating table auth_user_groups 
Creating table auth_user 
Creating table auth_message 
Creating table django_content_type 
Creating table django_session 
Creating table django_admin_log 
Creating table django_site 
Creating table sampleapp_category 
Creating table sampleapp_picture 
Creating table south_migrationhistory 



You just installed Django's auth system, which means you don't have any superusers defined. 
Would you like to create one now? (yes/no): yes... 

Wir deutlich sehen kann, dass die cms Tabellen nicht erstellt. Ich bin vor offensichtlich das Problem, wenn der Server läuft und das Surfen http://localhost:8000/

DatabaseError: no such table: cms_page 

Ich habe bei der Dokumentation geschaut und gesehen, dass ich die Anforderungen in Bezug auf die Versionen erfüllen aber klar, ich mache etwas falsch. Jede Hilfe würde sehr geschätzt werden.

+0

Ist die App in der Einstellungsdatei Ihres Projekts aktiviert? Ich denke, das kann sehr wohl das Problem sein. –

Antwort

7

django-cms verwendet South für Datenbankmigrationen. Modelle, die von South behandelt werden, werden nicht mit der Datenbank unter Verwendung von syncdb synchronisiert. Sie müssen manage.py migrate verwenden.

Da Sie haben keine Tabellen und Daten von django-cms zu migrieren, eine schnellere Lösung wäre dieser Prozess sein:

  • Kommentar aus 'south' in Ihrem INSTALLED_APPS
  • laufen manage.py syncdb (dies wird erstellen alle Tische von django-cms)
  • wieder aktivieren Süden in Ihrem INSTALLED_APPS
  • Lauf manage.py migrate --fake

Wenn Sie das nächste Mal django-cms aktualisieren, können Sie manage.py migrate ausführen, um Ihre Datenbanktabellen zu aktualisieren.

+0

Ja, ich folgte dem, wie ich bereits Süden für andere Projekte verwendet habe. Ich denke, das Problem besteht darin, die Migrationen zu fälschen und 'migrate --all 'danach nicht zu verwenden – booyakah

1

Haben Sie 'cms' in INSTALLED_APPS in settings.py eingegeben? Django-CMS benötigt außerdem auch menus, publisher und mptt installiert sowie einige Middleware. This is some nice to read documentation darauf!

+0

Danke für deine Antwort, ich habe auch dieses Tutorial durchgemacht. Ich habe aus dem Beispiel nicht auf settings.py zugegriffen und es enthält cms, menus, publisher und mpt, die ich alle in eine Python-Shell importieren kann. – booyakah

0

Im Allgemeinen, wenn Tabellen nicht dort erstellt wurden, können einige Fehler in der Anwendung selbst sein: versuchen Django Shell ausgeführt wird und ein Modell aus der Anwendung importieren:

python manage.py shell 

>>> from csm import models 

und prüfen Sie, ob Sie einen Traceback erhalten.

Hoffe, das kann helfen.

Verwandte Themen