我需要代码在HttpResponse中返回一个字符串和值,但它只返回第一个值(val)。我为什么要返回val和val2?我将用作消息的字符串,我需要在函数return中使用val作为下一个函数中的值使用它,如下所示:
def func1(request):
data = json.loads(request.body)
val = "string"
val2 = data['email']
return HttpResponse(val, val2)
def func2():
val3 = func1
val4 = "client %s" % val2
if val4:
return True
else:
return False
答案 0 :(得分:3)
您的客户端(Web浏览器)需要一个字符串作为响应:
return HttpResponse("a string: {}".format(val))
或使用JSON作为回复:
return JsonResponse({'message': 'a string', 'val': val})
或者,要将变量发送到下一个Django视图:
def my_view(request):
if request.session.get('val', None):
# do something with the 'val' variable.
else:
request.session['val'] = 'somevalue'
return HttpResponse('some message')
答案 1 :(得分:2)
使用JsonResponse
这也将解决CORS
问题
“””
处理json的内容类型不再需要添加内容类型。
'''
def __init__(self, content={}, status=None,content_type='application/json'):
super(JsonResponse, self).__init__(
json.dumps(content),
status=status, content_type=content_type)
并且回复将是这样的:
return JsonResponse({"message": " message", "subject": subject})