簡體   English   中英

從具有不同頂級文件夾名稱的Django項目導入

[英]Import from a Django project with a different top-level folder name

我最近使用Fabric為我的Django項目設置了部署解決方案。 基本工作流程為:

  1. 從服務器上的git查看最新的源代碼。
  2. 將其復制到“releases”目錄並為目錄名稱添加時間戳。
  3. 更新“當前”符號鏈接以指向最新版本。

這很好用,唯一的問題是,因為頂級目錄是一個名為'current'的符號鏈接,並指向像'project_name_2010_10_04'這樣的文件夾,所有以下Import語句都將失敗:

from project_name.app import models

...

INSTALLED_APPS = (
    'project_name.app'
)

...

urlpatterns = patterns('',
    (r'^$', 'project_name.app.views.index'),
)

所以我找到的解決方案是在我的項目中刪除對'project_name'的每一個引用,並且應用程序似乎部署並且工作得很好(現在)。 但這似乎不是解決問題的正確方法...主要是因為在新創建的Django項目中,'urls.py','settings.py'都默認引用了項目名稱,並提到了各種Django文檔使用項目名稱進行各種事情。

總結一下我的問題,有沒有辦法指定一個與實際目錄名不同的包名?

簡單地說,你真的不應該在任何地方使用硬編碼的項目名稱,特別是在特定的應用程序中,因為它只是完全破壞了它們的可移植性和可重用性。

您似乎直接在您的存儲庫的根目錄中擁有manage.pyurls.py和朋友。

這是不對的:在頂級,應該有setup.pyrequirements.txt和project目錄, manage.py和friends應該在其中。

(好吧,如果你想與非Python世界更兼容,它應該存在於頂級src/目錄中......)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM