如何在Django中指定自定义注册应用程序而不是已安装的注册应用程序?

时间:2011-03-02 15:51:59

标签: django registration

所以我创建了使用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。

1 个答案:

答案 0 :(得分:0)

您能确认找到的版本吗?如果没有直接shell访问,您可以创建一个管理命令来打印registration.get_version()方法。

您可以尝试使用sys.path.insert(0,[path])将自定义注册应用程序所在的目录添加到python路径的前面。

您还可以尝试重命名自定义注册应用程序(registration2?),以确保您在python路径上看到它并导入正确的注册应用程序。