16

私はすでに既存の Django Web サイトを持っています。メザニン ブログを作成したい新しい URL ルート '/blog/' を追加しました。スタンドアロンのブログ アプリケーションではなく、既存の Django サイトに Mezzanine をアプリとしてインストールできる場合。

4

2 に答える 2

13

あなたが私のような人なら、メザニンをアプリとして機能させる方法についてのFAQの説明が非常に不足していることに気付くでしょう. それで、これを(ある程度)統合するために(ハッキングの苦痛な半日の後)私がしたことは次のとおりです。

  1. リポジトリをダウンロードしてプロジェクトにコピーします
  2. パッケージの setup.py を実行します
  3. cdをパッケージに追加し、mezzanine コマンドを実行して新しいアプリ ( mezzanine-project <project name>) を作成します。その名前blog<project_name>.
  4. またはファイルで、プロジェクトのデータベースを使用するように dict を設定しlocal_settings.pyます。settings.pyDATABASES
  5. createdbmezzaninemanage.pyファイルからコマンドを実行します。

さあ、ハックフェストを始めましょう:

  1. プロジェクトの settings.py ファイルで、次のように追加blogしますINSTALLED_APPS
  2. Mezzanine が想定しているいくつかの構成変数を settings.py に追加します。 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. Mezzanine が期待するいくつかのミドルウェアを追加します: ```` ... "mezzanine.core.request.CurrentRequestMiddleware"、"mezzanine.core.middleware.RedirectFallbackMiddleware"、"mezzanine.core.middleware.TemplateForDeviceMiddleware"、"mezzanine.core. middleware.TemplateForHostMiddleware", "mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware", "mezzanine.core.middleware.SitePermissionMiddleware",

    SSL 設定のいずれかを使用する場合は、次のコメントを外します。

    "mezzanine.core.middleware.SSLRedirectMiddleware",

    "mezzanine.pages.middleware.PageMiddleware", .... ````
  4. Mezzanine が期待する INSTALLED_APPS をいくつか追加します。 .... "mezzanine.boot", "mezzanine.conf", "mezzanine.core", "mezzanine.generic", "mezzanine.blog", "mezzanine.forms", "mezzanine.pages", "mezzanine.galleries", "mezzanine.twitter", ....
  5. タプル のテンプレート フォルダーへの参照を追加mezzanineします。TEMPLATE_DIRS os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine'), os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine/blog/templates'),
  6. 最後に、私のような場合はextends、メザニン テンプレートのパスのいくつかをオーバーライドする必要があります。最も明白なのは、単に拡張する "blog_post_list.html" にありbase.html、代わりにメザニン固有のbaseファイルを拡張する必要があります。そのファイルに移動して、 を に置き換え{% extends "base.html" %}ます{% extends "core/templates/base.html" %}
于 2015-01-15T20:02:41.953 に答える
5

これについては、次の FAQ で説明されています。

http://mezzanine.jupo.org/docs/frequently-asked-questions.html#how-can-i-add-mezzanine-to-an-existing-django-project

TLDR: Mezzanine は、いくつかの設定、アプリ、ミドルウェア、およびコンテキスト プロセッサを追加します。これらはすべて、デフォルトの settings.py ファイルで定義されています。必要に応じて、それらを十分に抽出するだけです。

于 2013-03-27T19:44:45.377 に答える