Django HttpResponseRedirect 和 reverse()

ric*_*ice 3 django reverse django-views

情况简而言之。由于某种原因 reverse() 方法不起作用。

在项目 urls.py 中

url(r'^enrollment/', include('project.enrollment.urls')),
Run Code Online (Sandbox Code Playgroud)

在APP urls.py

url(r'^thanks/$', 'enrollment.views.thanks', name='enroll_thanks'),
Run Code Online (Sandbox Code Playgroud)

并在 views.py

from django.core.urlresolvers import reverse
def thanks(request):
    return render_to_response('enrollment/thanks.html', {}, context_instance=RequestContext(request))

def enroll(request):
    ''' some code for handling the form'''
    return HttpResponseRedirect(reverse('enrollment.views.thanks'))
Run Code Online (Sandbox Code Playgroud)

这种反向会导致以下错误:无法导入 project.views。错误是:没有名为视图的模块

在文件 ../django/core/urlresolvers.py 中的 _get_callback,第 167 行

知道为什么这不起作用吗?下一步是使用参数调用Thanks-view,但是在此设置工作后这应该很容易。是否应该在 views.py 中导入更多内容?

phi*_*est 5

来自reverse的文档:“作为确定哪些 URL 名称映射到哪些模式的一部分,reverse() 函数必须导入所有 URLconf 文件并检查每个视图的名称。这涉及导入每个视图函数。如果有导入任何视图函数时出现任何错误,它都会导致 reverse() 引发错误,即使该视图函数不是您要反转的视图函数。”

您的网址中是否有任何引用project.views....?