2013-02-23 59 views
0

我使用showmedo的视频教程创建了一个wiki应用程序。 从我所知道的教程是旧的,我正在使用django 1.4.3Django没有返回HttpResponse对象

我遇到了一个错误,当我尝试将页面保存到wiki的首页。

ValueError at /wikicamp/start/save/ 

The view wiki.views.save_page didn't return an HttpResponse object. 

Request Method:  GET 
Request URL: http://127.0.0.1:8000/wikicamp/start/save/ 
Django Version:  1.4.3 
Exception Type:  ValueError 
Exception Value:  

The view wiki.views.save_page didn't return an HttpResponse object. 

Exception Location:  C:\Python26\Lib\site-packages\django\core\handlers\base.py in get_response, line 129 

Traceback Switch to copy-and-paste view 

C:\Python26\Lib\site-packages\django\core\handlers\base.py in get_response 

          raise ValueError("The view %s.%s didn't return an HttpResponse object." % (callback.__module__, view_name)) 

我认为这个问题是在我的功能save_page下views.py

我的看法是:

from wiki.models import Page 
from django.shortcuts import render_to_response 
from django.http import HttpResponseRedirect 
def view_page(request,page_name): 
    try: 
     page = Page.objects.get(pk=page_name) 
    except Page.DoesNotExist: 
     return render_to_response("create.html",{"page_name":page_name}) 
    content = page.content 
    return render_to_response("view.html",{"page_name":page_name , "content":content}) 
def edit_page(request,page_name): 
    try: 
     page = Page.objects.get(pk=page_name) 
     content = page.content 
    except Page.DoesNotExist: 
     content = "" 
    return render_to_response("edit.html",{"page_name":page_name, "content":content}) 
def save_page(request , page_name): 
    content = request.POST.get('content', 'this is the default') 
    try: 
     page = Page.objects.get(pk = page_name) 
     page.content = content 
    except Page.DoesNotExist: 
     page = Page(name= page_name , content=content) 
     page.save() 
     return HttpResponseRedirect("/wikicamp/" + page_name + "/") 

回答

0

嗯,是的,在情况下,当页面确实存在您save_page视图不返回任何东西。

最有可能你只是偶然缩进savereturnexcept下:

def save_page(request, page_name): 
    content = request.POST.get('content', 'this is the default') 
    try: 
     page = Page.objects.get(pk=page_name) 
     page.content = content 
    except Page.DoesNotExist: 
     page = Page(name=page_name, content=content) 

    page.save() 
    return HttpResponseRedirect("/wikicamp/" + page_name + "/") 
相关问题