繁体   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