2013-03-27 14 views
14

Ho già un sito web Django esistente. Ho aggiunto una nuova route url '/ blog /' in cui mi piacerebbe avere un blog Mezzanine. Se è possibile installare Mezzanine come app in un sito Django esistente rispetto a un'applicazione blog indipendente.Come si installa Mezzanine come app Django?

+0

Ho provato questo un bel po 'senza fortuna; vorrebbe sapere come ottenere anche questo. Mezzanine è un CMS, e ha il suo solo server di corsa, ecc. Credo che non sia possibile farlo. – karthikr

risposta

10

Se siete come me, scoprirete che le FAQ sono carenti nella descrizione di come ottenere il funzionamento di Mezzanino come app. Così qui è quello che ho fatto (dopo una dolorosa mezza giornata di hacking) per ottenerlo integrato (un po '):

  1. Scarica il repo e copiarlo nel progetto
  2. Run setup.py per il pacchetto
  3. cd per il pacchetto ed eseguire il comando mezzanine per creare una nuova app (mezzanine-project <project name>), diciamo che si utilizza il nome blog come <project_name>.
  4. Nel file local_settings.py o settings.py, impostare DATABASES dict per utilizzare il database del progetto.
  5. eseguire il comando createdb dal mezzanino manage.py file di

Ora è il momento di iniziare l'hack-fest:

  1. Nel file di settings.py del progetto, aggiungere blog-INSTALLED_APPS
  2. Aggiungere alcune variabili di configurazione a settings.py che Mezzanine si aspetta: 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. Aggiungi un po 'di middleware che Mezzanino si aspetta: `` `` ... "mezzanine.core.request.CurrentRequestMiddleware", "mezzanine.core.middleware.RedirectFallbackMiddleware", "mezzanine.core.middleware. TemplateForDeviceMiddleware", "mezzanine.core.middleware.TemplateForHostMiddleware", "mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware", "mezzanine.core.middleware.SitePermissionMiddleware",

    commentare la seguente se si utilizza una delle impostazioni SSL:

    "mezzanine.core.middleware.SSLRedirectMiddleware",

    "mezzanine.pages.middleware.PageMiddleware", .... `` ``
  4. Aggiungere un po 'di INSTALLED_APPS che Mezzanino si aspetta: .... "mezzanine.boot", "mezzanine.conf", "mezzanine.core", "mezzanine.generic", "mezzanine.blog", "mezzanine.forms", "mezzanine.pages", "mezzanine.galleries", "mezzanine.twitter", ....
  5. Aggiungi riferimento per le cartelle di modelli di mezzanine al tuo TEMPLATE_DIRS tuple os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine'), os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine/blog/templates'),
  6. Infine, se siete come me, si dovrà sovrascrivi alcuni dei percorsi extends nei modelli mezzanine, il più ovvio è in "blog_post_list.html" che si estende appena base.html, invece si desidera estendere il file mezzanino specifico base. Quindi vai a quel file e sostituisci il {% extends "base.html" %} con {% extends "core/templates/base.html" %}.
+0

Ciao, ottengo questo problema quando si esegue setup.py: 'da: non può leggere/var/mail/setuptools da: non può leggere/var/mail/shutil da: non può leggere/var/mail/mezzanine ./setup.py: riga 9: exclude: comando non trovato ./setup.py: riga 10: mezzanine/project_template/nome_progetto/local_settings.py]: Nessun file o directory ./ setup.py: riga 13: errore di sintassi vicino a un token imprevisto (' ./setup.py: riga 13: exclude = dict ([(e, None) per e in exclude])' ' qualche idea? – vabada