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?
Trả lời
này được bao phủ trong Câu hỏi thường gặp:
TLDR: lửng cho biết thêm một số ít các thiết lập, ứng dụng bộ vi xử lý trung gian và bối cảnh, tất cả được xác định trong tập tin settings.py mặc định của nó - bạn chỉ cần giải nén đủ, tùy thuộc vào nhu cầu của bạn.
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):
- Tải repo và sao chép nó vào dự án của bạn
- Run setup.py cho gói
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ênblog
làm<project_name>
.- Trong tệp
local_settings.py
hoặcsettings.py
, hãy đặt sốDATABASES
dict để sử dụng cơ sở dữ liệu của dự án của bạn. - Chạy lệnh
createdb
từ lửngmanage.py
tập tin
Bây giờ là lúc để bắt đầu hack-fest:
- Trong file settings.py của dự án của bạn, thêm
blog
-INSTALLED_APPS
- 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
- 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", .... `` `` - 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", ....
- Thêm tham chiếu đến các mẫu thư mục của
mezzanine
-TEMPLATE_DIRS
tuple của bạnos.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine'), os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine/blog/templates'),
- 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ộngbase.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" %}
.
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
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