2

django 1.4 中的 URL 反转代码发生了一些奇怪的事情。

我有一个视图叫做settings.views.app_view. 我通过手动输入 URL 来查看该页面,以验证基本 URL 模式是否有效。

url(r'^app/$', 'settings.views.app_view', name='settings_app_view'),

我已经在模板中反转了 URL,它可以工作。

{% url settings_app_view %}

因此,URL 模式有效,我可以调用获取模板中的 URL,单击链接并查看正确的页面。

那么为什么我不能使用 reverse() 在视图中获取 URL?所有的代码都清楚地在那里,不仅如此,当我看到页面并在模板中反转 URL 时,它的配置和工作都非常清楚。

我必须缺少一些小东西;有谁知道它是什么?

ViewDoesNotExist at /settings/app/
Exception Value:    Could not import settings.views.app_view. View does not exist in module settings.views.

# The highlighted code
url = reverse("settings_app_view")
4

1 回答 1

3

reverse() 在你的代码中究竟是在哪里执行的?如果在导入 python 文件期间执行 reverse(),您可以获得递归导入。不幸的是,递归导入可能会产生不同的结果:AttributeError 可能发生在应该具有此属性的模块上......

请参阅:https ://docs.djangoproject.com/en/dev/ref/urlresolvers/#reverse-lazy

于 2012-04-17T13:29:45.723 回答