2013-03-27 13 views
14

Tôi đã có một trang web Django hiện có. Tôi đã thêm một tuyến đường url mới '/ blog /' nơi tôi muốn có một blog lửng. Nếu nó có thể cài đặt Mezzanine như một ứng dụng trong một trang web Django hiện có như trái ngược với một ứng dụng blog độc lập.Làm cách nào để cài đặt Mezzanine làm ứng dụng Django?

+0

Tôi đã thử điều này một chút không có may mắn; cũng muốn biết cách đạt được điều này. Tầng lửng là một CMS, và nó có máy chạy duy nhất của nó, vv Tôi tin rằng nó không thể làm điều này. – karthikr

Trả lời

10

Nếu bạn giống tôi, bạn sẽ thấy rằng Câu hỏi thường gặp thiếu sót trong mô tả của nó về cách làm cho Gác lửng hoạt động như một ứng dụng. Vì vậy, đây là những gì tôi đã làm (sau nửa ngày đau đớn của hacking) để làm cho nó tích hợp (hơi):

  1. Tải repo và sao chép nó vào dự án của bạn
  2. Run setup.py cho gói
  3. cd vào gói và chạy lệnh lửng để tạo ứng dụng mới (mezzanine-project <project name>), giả sử bạn sử dụng tên blog làm <project_name>.
  4. Trong tệp local_settings.py hoặc settings.py, hãy đặt số DATABASES dict để sử dụng cơ sở dữ liệu của dự án của bạn.
  5. Chạy lệnh createdb từ lửng manage.py tập tin

Bây giờ là lúc để bắt đầu hack-fest:

  1. Trong file settings.py của dự án của bạn, thêm blog-INSTALLED_APPS
  2. Thêm một số biến cấu hình vào settings.py mà Mezzanine đang mong đợi: 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. Thêm một số middleware rằng lửng dự kiến: `` `` ... "mezzanine.core.request.CurrentRequestMiddleware", "mezzanine.core.middleware.RedirectFallbackMiddleware", "mezzanine.core.middleware. TemplateForDeviceMiddleware", "mezzanine.core.middleware.TemplateForHostMiddleware", "mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware", "mezzanine.core.middleware.SitePermissionMiddleware",

    Bỏ ghi chú những điều sau nếu sử dụng bất kỳ cài đặt SSL:

    "mezzanine.core.middleware.SSLRedirectMiddleware",

    "mezzanine.pages.middleware.PageMiddleware", .... `` ``
  4. Thêm một số INSTALLED_APPS rằng lửng dự kiến: .... "mezzanine.boot", "mezzanine.conf", "mezzanine.core", "mezzanine.generic", "mezzanine.blog", "mezzanine.forms", "mezzanine.pages", "mezzanine.galleries", "mezzanine.twitter", ....
  5. Thêm tham chiếu đến các mẫu thư mục của mezzanine-TEMPLATE_DIRS tuple của bạn os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine'), os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine/blog/templates'),
  6. Cuối cùng, nếu bạn như tôi, bạn sẽ phải ghi đè một số đường dẫn extends trong các mẫu lửng, rõ ràng nhất là trong "blog_post_list.html" chỉ mở rộng base.html, thay vào đó bạn muốn mở rộng tệp lửng cụ thể base. Vì vậy, hãy chuyển đến tệp đó và thay thế {% extends "base.html" %} bằng {% extends "core/templates/base.html" %}.
+0

Hi, tôi nhận được vấn đề này khi chạy setup.py: 'từ: không thể đọc/var/mail/setuptools từ: không thể đọc/var/mail/shutil từ: không thể đọc/var/mail/mezzanine ./setup.py: dòng 9: loại trừ: lệnh không tìm thấy ./setup.py: dòng 10: mezzanine/project_template/project_name/local_settings.py]: Không có tệp hoặc thư mục nào như vậy ./ setup.py: line 13: lỗi cú pháp gần mã thông báo không mong muốn (' ./setup.py: dòng 13: exclude = dict ([(e, None) cho e trong loại trừ])' ' bất kỳ ý tưởng nào? – vabada