0

我已将我的网站从 Django 1.3.1 升级到 Django 1.4。我有一个名为“用户”的应用程序。我的项目有一个 URL 路由规则,如下所示:

url(r'', include('users.urls', namespace='users', app_name='users')),

和特定的用户配置文件路由规则:

url(r'^profile/(?P<pk>\d+)/$', ProfileDetailView.as_view(),
    name='profile'),

用户应用程序有一个空的init .py 文件。不过,我收到一个模板错误:

Error during template rendering

In template /home/daniel/python_practice/rainbow/django_templates/user_bar.html, error at line 3
No module named users

当我使用以下模板代码时:

<a href="{%url users:profile user.id %}">{{ user.username }}</a>

我已经在这个问题上停留了几个小时。该项目被命名为“彩虹”。我尝试过将 url 调用参数修改为url rainbow.users:profile .... 这样做后,它告诉我“彩虹”不是名称空间。就好像它正在识别users名称空间,但随后正在寻找某种模块并且失败了。

有人对此有任何见解吗?


编辑:

目录结构如下:

rainbow
--> rainbow - directory that contains global settings and urls
--> users - the relevant app
    --> __init__.py
    --> ...etc.
--> other apps
--> django_templates (eg. the relevant template would be django_templates/user_bar.html)

谢谢,

典范RG

4

2 回答 2

1

通常情况下,我在寻找答案时遇到的问题极大地限制了我的搜索广告和测试的范围。实际上有两个 URL 配置行,其中指定了不存在的模块。我只是一次修改一个,没有任何积极影响。

这些行是:

url(r'^join/$', 'rainbow.users.views.register', name='join'),
url(r'^profile/$', 'rainbow.users.views.self_profile',
    name='user_profile_current'),

rainbow.从每个视图中删除解决了这个问题。

于 2012-05-16T14:02:43.317 回答
0

只是一个建议,但是当您将 Django 升级到 1.4 时,您是否升级了项目 manage.py ? 在 django 1.4 中升级 manage.py 他们谈论你现在可能遇到的路径问题。正如 okm 所问的那样,如果您无法启动 shell 并导入用户,那么根目录就有问题。

于 2012-05-15T15:58:46.947 回答