2013-03-27 16 views
14

Mam już istniejącą witrynę Django. Dodałem nową trasę URL/blog /, w której chciałbym mieć bloga typu Mezzanine. Jeśli możliwe jest zainstalowanie antresoli jako aplikacji w istniejącej witrynie Django w przeciwieństwie do samodzielnej aplikacji blogowej.Jak zainstalować aplikację Mezzanine jako aplikację Django?

+0

Próbowałem tego całkiem sporo bez powodzenia; Chciałbym wiedzieć, jak to osiągnąć. Mezzanine to CMS i ma jedyny runserver itp. Uważam, że nie można tego zrobić. – karthikr

Odpowiedz

10

Jeśli jesteś podobny do mnie, zauważysz, że w FAQ często brakuje opisu, w jaki sposób ustawić aplikację Mezzanine jako aplikację. Więc tutaj jest to, co zrobiłem (po bolesnej pół dnia hacking), aby uzyskać to zintegrowany (nieco):

  1. Pobierz repo i skopiować go do projektu
  2. Run setup.py dla pakietu
  3. cd do pakietu i uruchom polecenie "Mezzanine", aby utworzyć nową aplikację (mezzanine-project <project name>), powiedzmy, że jako blog używamy nazwy .
  4. W pliku local_settings.py lub settings.py ustaw dyktafon DATABASES, aby korzystać z bazy danych projektu.
  5. Uruchom komendę createdb z antresolą manage.py plik

Teraz nadszedł czas, aby rozpocząć hack-fest:

  1. W settings.py złożyć projektu, dodać blog do INSTALLED_APPS
  2. Dodaj niektóre zmienne konfiguracyjne do settings.py, które spodziewa się antresoli: 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. Dodać trochę middleware że Mezzanine spodziewa: `` `` ... "mezzanine.core.request.CurrentRequestMiddleware", "mezzanine.core.middleware.RedirectFallbackMiddleware", „mezzanine.core.middleware. TemplateForDeviceMiddleware” «mezzanine.core.middleware.TemplateForHostMiddleware» «mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware» «mezzanine.core.middleware.SitePermissionMiddleware»

    Odkomentuj następujące przypadku korzystania z dowolnego ustawienia SSL:

    "mezzanine.core.middleware.SSLRedirectMiddleware",

    "mezzanine.pages.middleware.PageMiddleware", .... `` ``
  4. dodać trochę INSTALLED_APPS że Mezzanine spodziewa: .... "mezzanine.boot", "mezzanine.conf", "mezzanine.core", "mezzanine.generic", "mezzanine.blog", "mezzanine.forms", "mezzanine.pages", "mezzanine.galleries", "mezzanine.twitter", ....
  5. Dodaj odnośniki do folderów szablonów z mezzanine do TEMPLATE_DIRS krotki os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine'), os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine/blog/templates'),
  6. W końcu, jeśli tak jak ja, będziesz musiał zastąp niektóre ścieżki extends w szablonach mezzanine, najbardziej oczywiste z "blog_post_list.html", które po prostu rozszerza base.html, zamiast tego chcesz rozszerzyć plik specyficzny dla mezzanine base. Przejdź do tego pliku i zmień {% extends "base.html" %} na {% extends "core/templates/base.html" %}.
+0

Witam, mam ten problem podczas uruchamiania setup.py: 'z: nie można odczytać/var/mail/setuptools z: nie można odczytać/var/mail/shutil z: nie można odczytać/var/mail/mezzanine ./setup.py: wiersz 9: wyklucz: polecenie nie znaleziono ./setup.py: wiersz 10: mezzanine/project_template/project_name/local_settings.py]: Brak takiego pliku lub katalogu ./ setup.py: wiersz 13: błąd składni w pobliżu nieoczekiwanego tokenu (' ./setup.py: wiersz 13: exclude = dict ([(e, None) dla e w exclude])' ' jakieś pomysły? – vabada

Powiązane problemy