首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django未返回HttpResponse对象

Django未返回HttpResponse对象
EN

Stack Overflow用户
提问于 2013-02-23 19:30:07
回答 1查看 786关注 0票数 0

我正在使用showmedo的视频教程创建一个wiki应用程序。据我所知,这个教程很旧,我使用的是django 1.4.3

当我尝试将页面保存到维基首页时遇到错误。

代码语言:javascript
复制
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中

我的看法是:

代码语言:javascript
复制
 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 + "/")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-23 19:32:00

是的,如果页面确实存在,您的save_page视图不会返回任何内容。

很可能您只是意外地缩进了except下的savereturn

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15040032

复制
相关文章

相似问题

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