首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django HttpResponseRedirect和reverse()

Django HttpResponseRedirect和reverse()
EN

Stack Overflow用户
提问于 2012-02-11 01:51:02
回答 2查看 16.5K关注 0票数 3

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

在项目urls.py中

代码语言:javascript
复制
url(r'^enrollment/', include('project.enrollment.urls')),

在应用程序urls.py中

代码语言:javascript
复制
url(r'^thanks/$', 'enrollment.views.thanks', name='enroll_thanks'),

在views.py中

代码语言:javascript
复制
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中导入更多内容?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-11 02:17:42

reverse的文档中:“作为确定哪些网址名称映射到哪些模式的一部分,reverse()函数必须导入所有的URLconf文件并检查每个视图的名称。这涉及到导入每个视图函数。如果在导入任何视图函数时出现任何错误,它将导致reverse()引发一个错误,即使该视图函数不是您正在尝试反向的那个。”

您的urls中是否有引用project.views.的...?

票数 5
EN

Stack Overflow用户

发布于 2012-02-11 02:18:51

不太确定您的模块布局,但根据urls.py中的include()行,看起来您可能想要添加“项目”。添加到您的reverse()调用中的参数中。

代码语言:javascript
复制
reverse('project.enrollment.views.thanks')

或者你可能在视图中有一个bug。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9232375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档