简而言之,情况。由于某种原因,reverse()方法不起作用。
在项目urls.py中
url(r'^enrollment/', include('project.enrollment.urls')),在应用程序urls.py中
url(r'^thanks/$', 'enrollment.views.thanks', name='enroll_thanks'),在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'))此反向操作导致以下错误:无法导入project.views。错误是:没有命名视图的模块
在_get_callback中的../django/core/urlresolvers.py文件中,第167行
你知道为什么这个不起作用吗?下一步是使用一个参数调用感谢视图,但在此设置工作之后,这应该会很容易。是否应该在views.py中导入更多内容?
发布于 2012-02-11 02:17:42
在reverse的文档中:“作为确定哪些网址名称映射到哪些模式的一部分,reverse()函数必须导入所有的URLconf文件并检查每个视图的名称。这涉及到导入每个视图函数。如果在导入任何视图函数时出现任何错误,它将导致reverse()引发一个错误,即使该视图函数不是您正在尝试反向的那个。”
您的urls中是否有引用project.views.的...?
发布于 2012-02-11 02:18:51
不太确定您的模块布局,但根据urls.py中的include()行,看起来您可能想要添加“项目”。添加到您的reverse()调用中的参数中。
reverse('project.enrollment.views.thanks')或者你可能在视图中有一个bug。
https://stackoverflow.com/questions/9232375
复制相似问题