“Django”;视图没有';t返回HttpResponse对象。”;
我有一个保存表单的简单视图。代码看起来“干净”,但我无法消除错误: “视图未返回HttpResponse对象。” 虽然我在网上搜索过,但没有找到相关的迹象“Django”;视图没有';t返回HttpResponse对象。”;,django,http,view,response,Django,Http,View,Response,我有一个保存表单的简单视图。代码看起来“干净”,但我无法消除错误: “视图未返回HttpResponse对象。” 虽然我在网上搜索过,但没有找到相关的迹象 def classroom_privacy(request,classname): theclass = Classroom.objects.get(classname=classname) if request.method == 'POST': form = PrivacyClass(requ
def classroom_privacy(request,classname):
theclass = Classroom.objects.get(classname=classname)
if request.method == 'POST':
form = PrivacyClass(request.POST)
if form.is_valid():
new_obj = form.save(commit=False)
new_obj.save()
return HttpResponseRedirect('.')
else:
form = PrivacyClass()
return render_to_response('classroom/classroom_privacy.html', {'form': form},
context_instance=RequestContext(request))
所有视图函数都必须返回某种类型的HttpResponse对象。函数中存在一个代码路径,其中将返回
None
。当request.method!='发布'
,您只需“从函数的末尾掉下来”(返回None
)。验证代码的缩进
def classroom_privacy(request, classname):
theclass = Classroom.objects.get(classname=classname)
if request.method == 'POST':
form = PrivacyClass(request.POST)
if form.is_valid():
new_obj = form.save(commit=False)
new_obj.save()
return HttpResponseRedirect('.')
else:
form = PrivacyClass()
return render_to_response('classroom/classroom_privacy.html', {'form': form}, context_instance=RequestContext(request))
如果是get请求,则呈现未绑定表单
如果是post请求且表单无效,则呈现绑定表单
如果是post请求和有效表单,则在使用Django Rest框架时重定向页面。使用以下代码返回HTTP响应,以解决此问题
from django.http import HttpResponse
def TestAPI(request):
# some logic
return HttpResponse('Hello')
JSON响应返回示例:
def TestAPI(request):
your_json = [{'key1': value, 'key2': value}]
return HttpResponse(your_json, 'application/json')
有关HttpResponse的更多详细信息:
一个小问题:你发送了一个POST请求?对过路人说:“你忘了
返回答复了吗?”你是对的。我真的有问题!非常感谢。这是正确的,突然之间验证开始工作了。不知怎么的,我的表单中出现了相同的缩进错误。谢谢!对你是对的。我的问题更为琐碎,尽管我看不见。我有一个缩进问题,“else”被解释为第二个if。非常感谢您的关注!:)