更改通过pip安装的应用程序的目录

时间:2014-01-28 15:32:50

标签: django pip

我正在使用virtualenv和pip。是否可以将通过pip安装的应用程序移出virtualenv并进入我的django应用程序文件夹?

1 个答案:

答案 0 :(得分:1)

答案是肯定的。只需将相应的文件夹从virtualenv移动到项目文件夹以及您自己的应用程序。

但是,这里真正的问题是为什么你想做那样的事情。大多数用户这样做是为了实际更改外部应用程序的源代码树中的某些内容以满足他们的需求。大多数情况下,是正确的事情并且与django philosophy相矛盾。使用它只是作为最后的手段,即便如此,我认为最好分叉项目,进行更改并提出与原始项目的合并,如果它实际上改进了它。

<强>更新

以下是我专门针对django-lazysignup所做的事情:首先,我要创建一个名为lazysignup_override的应用程序,并在我的{{lazysignup应用程序中包含它(以及INSTALLED_APPS应用程序) 1}}。

现在,您说要覆盖lazysignup的模板和视图: 如果在lazysignup的templates文件夹中创建名为lazysignup_override的文件夹,则可以覆盖模板,并将修改后的模板文件复制到其中。现在,从我看来,django-lazysignup只定义了一个通过urls.py使用的视图(不幸的是不是 CBV)。因此,在lazysignup_override文件夹中,您需要创建一个包含已修改视图的views.py和一个包含该视图的urls.py

最后,在项目的主urls.py中添加行

urlpatterns += (''
    (r'^convert/', include('lazysignup_override.urls')),
)

(并将lazysignup.backends.LazySignupBackend添加到您的AUTHENTICATION_BACKENDS

以上看起来似乎很多工作但是这是与哲学兼容的正确方法(松散耦合,DRY等)。此外,如果lazysignup使用CBV,那么您可以理解覆盖它会更容易。