Django:为什么我可以反转模板中的URL而不是视图中的URL?

时间:2012-04-17 13:19:09

标签: django django-urls

有一些奇怪的东西在django 1.4中使用URL反转代码。

我有一个名为settings.views.app_view的视图。我通过手动输入URL来查看页面,以验证基本URL模式是否正常工作。

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

我已经在模板中撤消了网址并且有效。

{% 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")

1 个答案:

答案 0 :(得分:3)

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

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