1

我正在制作一个简单的 django 站点,为此我使用了 django-registration 扩展。我可能应该补充一点,我刚刚将 django-registration 源复制到我的项目中,就好像它是我自己的应用程序一样 - 我正在和其他人一起做这个网站,我们的 django 环境配置不同,但我们通过共享网站的代码svn - 我不希望我们每个人都单独安装 django-registration。

在根 urls.py 文件中,我有:

import registration
...
urlpatterns = (
   ...
   url(r'^accounts/',include(registration.backends.default.urls),
)

'backends' 和 'default' 是注册应用程序中的包。

在 Aptana 中,代码检查错误消息指出:“Undefined variable from import: backends” 在我的测试服务器的调试模式中,错误是“'module' object has no attribute 'backends'”

如果我这样做from registration import backendsinclude(backends.default.urls)则找不到“默认”。

当我这样做时它可以工作from registration.backends import defaultinclude(default.urls)但我不想这样做,因为我无法快速看到它链接到什么......

为什么环境不能正确加载包?在同一个文件中,我使用其他 URLconf 包含包含包名称之类include(django.contrib.admin)的路径,并且这些路径没有问题。是不是因为我复制了注册源而不是安装应用程序?如果是这样,那么提供所需源代码可移植性的正确方法是什么?

4

1 回答 1

1

尝试将注册 url 的路径指定为字符串,而不是在 urls.py 中导入注册模块:

url(r'^accounts/',include('registration.backends.default.urls'),
于 2012-12-09T15:31:39.013 回答