Python 视图未返回任何对象(未返回HttpResponse对象)
这个问题可能是重复的和/或太无聊了。我已经阅读了、、和问答。但是找不到适合我问题的解决方案 我是Django框架的新手。为了学习它,我想创建一个简单的博客。当用户单击“注册”按钮(填写必填字段后)时,引发以下错误: ValueError位于/user/register/视图user.views.register没有 返回一个HttpResponse对象。它没有返回任何结果 视图.pyPython 视图未返回任何对象(未返回HttpResponse对象),python,django,Python,Django,这个问题可能是重复的和/或太无聊了。我已经阅读了、、和问答。但是找不到适合我问题的解决方案 我是Django框架的新手。为了学习它,我想创建一个简单的博客。当用户单击“注册”按钮(填写必填字段后)时,引发以下错误: ValueError位于/user/register/视图user.views.register没有 返回一个HttpResponse对象。它没有返回任何结果 视图.py def register(request): """ Registers new user.
def register(request):
"""
Registers new user.
"""
if request.POST:
if request.method == 'POST':
personal_info = UserFormModel(request.POST)
if personal_info.is_valid():
email = personal_info.cleaned_data['email']
username = personal_info.cleaned_data['username']
if User.objects.filter(email=email).exists():
return HttpResponse('email error')
elif User.objects.filter(username=username).exists():
return HttpResponse('username error')
else:
return HttpResponse('saved')
else:
personal_info = UserFormModel()
return render_to_response('user/registration.html',
{
'title': 'Registration',
'username_error': 'Sorry, someone already has that username.',
'personal_info': personal_info,
},
context_instance=RequestContext(request))
如有必要,我可以共享任何文件内容
如有任何有用的意见或回答,我们将不胜感激。请保持一致
如果个人信息有效():
如果个人信息无效,它将不返回任何信息。(不返回任何信息)
添加else条件,因为您没有处理案例
if personal_info.is_valid():
# code here
else:
return HttpResponse('personal info provided not valid')
为了避免出现这种情况,更好的方法之一是在函数开始时为状态消息和结果保留一个字典,只在一个地方返回,而不是在多个地方返回,并将结果存储在result_dict中
result_dict={'status':False}
并始终在函数结束时返回
返回HttpResponse(json.dumps(result\u dict))
这样,您将永远不会错过返回值的案例
所以最终的代码应该是这样的
def register(request):
"""
Registers new user.
"""
result_dict = {'status': False}
if request.POST:
if request.method == 'POST':
personal_info = UserFormModel(request.POST)
if personal_info.is_valid():
email = personal_info.cleaned_data['email']
username = personal_info.cleaned_data['username']
if User.objects.filter(email=email).exists():
result_dict['message'] = 'email error'
elif User.objects.filter(username=username).exists():
result_dict['message'] = 'username error'
else:
result_dict['message'] = 'saved'
result_dict['status'] = True
else:
result_dict['message'] = 'personal info provided not valid'
else:
personal_info = UserFormModel()
return render_to_response('user/registration.html',
{
'title': 'Registration',
'username_error': 'Sorry, someone already has that username.',
'personal_info': personal_info,
},
context_instance=RequestContext(request))
return HttpResponse(json.dumps(result_dict))
当
个人信息时,视图会返回什么?
是否有效()不是真的?我忘记了:)谢谢:)会喜欢反馈和答案的问题以及否决票,对我也会有帮助:)@mirjallatalishinski欢迎您,您也可以将其标记为正确:)