2013-03-27 7 views
14

Ich habe bereits eine bestehende Django-Website. Ich habe eine neue URL-Route "/ Blog /" hinzugefügt, wo ich gerne einen Mezzanine-Blog haben möchte. Wenn es möglich ist, Mezzanine als App in einer bestehenden Django-Site im Gegensatz zu einer eigenständigen Blog-Anwendung zu installieren.Wie installiere ich Mezzanine als Django App?

+0

Ich habe das ziemlich viel ohne Glück versucht; würde gerne wissen, wie man das auch erreicht. Mezzanine ist ein CMS, und es hat seinen einzigen Runserver usw. Ich glaube, das ist nicht möglich. – karthikr

Antwort

10

Wenn Sie wie ich sind, werden Sie feststellen, dass die FAQ fehlt in ihrer Beschreibung, wie Mezzanine als App funktioniert. So, hier ist was ich getan habe (nach einer schmerzhaften halben Tag Hacking), um es integriert (etwas):

  1. den Repo herunterladen und kopieren Sie sie in Ihr Projekt
  2. Run setup.py für das Paket
  3. cd an das Paket und führen Sie den Mezzanine-Befehl zum Erstellen einer neuen App (mezzanine-project <project name>), nehmen wir an, Sie verwenden den Namen blog als Ihre <project_name>.
  4. Legen Sie in der Datei local_settings.py oder settings.py das DATABASES dict fest, um die Projektdatenbank zu verwenden.
  5. Führen Sie den createdb Befehl aus dem Mezzanine manage.py Datei

nun das Hack-Fest ist es Zeit zu beginnen:

  1. In Ihrem Projekt settings.py Datei, fügen blog-INSTALLED_APPS
  2. Fügen Sie Konfigurationseinstellungen zu settings.py hinzu, die Mezzanine erwartet: PACKAGE_NAME_FILEBROWSER = "filebrowser_safe" PACKAGE_NAME_GRAPPELLI = "grappelli_safe" GRAPPELLI_INSTALLED = False ADMIN_REMOVAL = [] RATINGS_RANGE = range(1, 5) TESTING = False BLOG_SLUG = '' COMMENTS_UNAPPROVED_VISIBLE = True COMMENTS_REMOVED_VISIBLE = False COMMENTS_DEFAULT_APPROVED = True COMMENTS_NOTIFICATION_EMAILS = ",".join(ALL_EMAILS) COMMENT_FILTER = None
  3. einige Middleware hinzufügen, die Mezzanine erwartet: `` `` ... "mezzanine.core.request.CurrentRequestMiddleware", "mezzanine.core.middleware.RedirectFallbackMiddleware", „mezzanine.core.middleware. TemplateForDeviceMiddleware“, "mezzanine.core.middleware.TemplateForHostMiddleware", "mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware", "mezzanine.core.middleware.SitePermissionMiddleware",

    Kommentar- der folgenden, wenn eine der SSL-Einstellungen:

    "mezzanine.core.middleware.SSLRedirectMiddleware",

    "mezzanine.pages.middleware.PageMiddleware", .... `` ``
  4. einige INSTALLED_APPS hinzufügen, dass Mezzanine erwartet: .... "mezzanine.boot", "mezzanine.conf", "mezzanine.core", "mezzanine.generic", "mezzanine.blog", "mezzanine.forms", "mezzanine.pages", "mezzanine.galleries", "mezzanine.twitter", ....
  5. Fügen Sie Verweise auf den Vorlagenordner von mezzanine zu Ihrem TEMPLATE_DIRS Tupel os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine'), os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine/blog/templates'),
  6. Schließlich, wenn Ihr wie ich, Sie haben werde überschreiben Sie einige der extends Pfade in den Mezzanine-Vorlagen, die offensichtlichste in "blog_post_list.html", die nur erweitert base.html, stattdessen möchten Sie es die Mezzanine-spezifische base Datei zu erweitern. Also gehen Sie zu dieser Datei und ersetzen Sie die {% extends "base.html" %} durch {% extends "core/templates/base.html" %}.
+0

Hallo, bekomme ich dieses Problem, wenn setup.py ausgeführt wird: 'aus: kann nicht gelesen/var/mail/Setuptools aus: kann nicht gelesen/var/mail/shutil aus: kann nicht lesen/var/mail/Mezzanin ./setup.py: Linie 9: exclude: Linie 10: Mezzanine/project_template/project_name/local_settings.py]: Befehl nicht ./setup.py gefunden keine solche Datei oder das Verzeichnis ./ setup.py: Zeile 13: Syntaxfehler in der Nähe eines unerwarteten Tokens (' ./setup.py: Zeile 13: exclude = dict ([(e, None) für e im Ausschluss])' ' irgendwelche Ideen? – vabada