2014-11-03 86 views
-1

我是Python和Django的新手,一直在努力学习如何为我的网站制作注册表单。我正在关注本教程https://www.youtube.com/watch?v=Tam4IGrPESg。我有一切工作到registration_success页面。以下是我认为是相关代码:Python-Django:找不到模板

settings.py

TEMPLATE_DIRS = (
    TEMPLATE_PATH + '/templates/', 
    TEMPLATE_PATH + '/templates/registration', 
) 

urls.py

#registration 
(r'^register/$', register_user), 
(r'^registration_success/$', registration_success), 

views.py

def register_user(request): 
    if request.method == 'POST': 
     form = UserCreationForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return HttpResponseRedirect('registration_success')   
    args = {} 
    args.update(csrf(request)) 
    print (args) 
    args['form'] = UserCreationForm() 

    return render_to_response('register.html',args) 

def registration_success(request): 
    return render_to_response('registration_success.html') 

我得到的错误是这个:

Page not found (404) 
Request Method: GET 
Request URL: http://localhost:8000/register/registration_success 
Using the URLconf defined in tut_1.urls, Django tried these URL patterns, in this order: 
^$ 
^login/$ 
^logout/$ 
^register/$ 
^registration_success/$ 
^portal/ 
^static/(?P<path>.*)$ 
The current URL, registration/registration_success, didn't match any of these. 

我不确定tbh到底发生了什么。我注意到的是,URL是:http:// localhost:8000/register/registration_success。为什么要注册/注册_...?它不应该是注册/ registration_success?

在此先感谢。

+0

该错误不在于它无法找到模板,但它无法找到您请求的页面:即你的网址不匹配。该消息非常清晰,并没有提到模板一次。 – 2014-11-03 07:34:27

回答

0
return HttpResponseRedirect('registration_success') 

您正在重定向到相对于当前网址的路径。这就解释了为什么你被路由到/ register/registration_success。

为了解决这个问题,你需要使用一个根目录相对路径

return HttpResponseRedirect('/registration_success/') 
+0

感谢您的回复。我尝试了你的建议,但我最终得到了一个循环。纠正我,如果我错了/ registration_success /将调用registration_success函数并重复循环?我真的不知道我做了什么,但我没有更改我发布的任何代码,现在它可以工作......不幸的是,我不能说我做了什么... – Szpok 2014-11-04 01:00:39