[Answer]-Change directory for app which is installed via pip

1👍

The answer is yes. Just move the corresponding folder from your virtualenv to your project folder along with your own apps.

However, the real question here is why you wanted to do something like that. Most users do this in order to actually change something in the source tree of the external application to suite their needs. Most of the time this is not the correct thing to do and contradicts the django philosophy. Use it only as a last resort and even then I believe it is better to fork the project, do your changes and propose a merge with the original project if it actually improves it.

Update

Here’s what I’d do specifically for django-lazysignup: First of all I’d create an application named lazysignup_override and include this (along with the lazysignup application) in my INSTALLED_APPS.

Now, you say you want to override the templates and he views of lazysignup:
The templates can be overriden if you create a folder named lazysignup in the templates folder of lazysignup_override and copy there the modified template files. Now, from what I see django-lazysignup defines only one view (unfortuanately not a CBV) that is used through the urls.py. So in the lazysignup_override folder you’d need to create a views.py that will contain your modified view and a urls.py with that view.

Finally, in the main urls.py of your project you’d add the line

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

(and add the lazysignup.backends.LazySignupBackend to your AUTHENTICATION_BACKENDS.

The above may seem like a lot of work however this is the correct way to go to be compatible with the philosophy (loose coupling, DRY etc). Also, if lazysignup was using CBVs then you can understand that overriding it would be much easier.

Leave a comment