所以我创建了使用django-registration-0.8的网站,但托管它的服务器使用0.7安装的服务器范围。我无法访问如何查找模块,因此我尝试下载0.8源并放置注册/文件夹并将其注册在settings.py(INSTALLED_APPS)中作为注册。
现在django正在查看自定义注册应用程序(0.8)。但是,在尝试访问注册页面时,我收到此错误:
ImportError at /accounts/register/
No module named backends.default.urls
在urls.py中称为:
(r'^accounts/', include('registration.backends.default.urls')),
如果我将其更改为
(r'^accounts/', include('registration.urls')),
错误消失了,但这意味着它正在使用已安装的(0.7)版本。该版本的一个问题是激活页面不同。
检查注册应用程序文件夹我可以看到模块存在,在registration / backends / default / urls中。所以我的结论是在服务器范围内安装的注册(0.7)是在我从源(0.8)手动提取的注册之前首先查看的注册。
所以我的问题是如何让Django查找我作为应用程序安装的0.8版本,而不是在服务器范围内安装的版本?我无权访问shell(使用djangofoo主机),只能访问manage.py和ftp。
答案 0 :(得分:0)
您能确认找到的版本吗?如果没有直接shell访问,您可以创建一个管理命令来打印registration.get_version()方法。
您可以尝试使用sys.path.insert(0,[path])将自定义注册应用程序所在的目录添加到python路径的前面。
您还可以尝试重命名自定义注册应用程序(registration2?),以确保您在python路径上看到它并导入正确的注册应用程序。