django中的“赋值前引用的局部变量'响应'”错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django中的“赋值前引用的局部变量'响应'”错误相关的知识,希望对你有一定的参考价值。
##在创建视图'add_car'方法时我试图为'response'变量赋值,但它显示错误。如果我输入'response = None',我得到的输出是None
from django.shortcuts import render
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
import json
from .models import Car
def index(request):
response=json.dumps([{}])
return HttpResponse(response,content_type='text/json')
def get_car(request,car_name):
if request.method == 'GET':
try:
car=Car.objects.get(name=car_name)
response=json.dumps([{'Car':car.name,'Top speed':car.top_speed}])
except:
response=json.dumps([{'Error':'No car with that name'}])
return HttpResponse(response,content_type='text/json')
@csrf_exempt
def add_car(request):
#response=None
if request.method =='POST':
payload=json.loads(request.body)
car_name=payload['car_name']
top_speed=payload['top_speed']
car=Car(name=car_name,top_speed=top_speed)
try:
car.save()
response=json.dumps([{'Success':'Car added succesfully'}])
except:
response=json.dumps([{'Error':'Car could not ne added'}])
return HttpResponse(response,content_type='text/json')
答案
可能,您不使用POST
方法调用此视图。
if request.method =='POST':
没有执行,所以return HttpResponse(response,content_type='text/json')
找不到响应变量。
以上是关于django中的“赋值前引用的局部变量'响应'”错误的主要内容,如果未能解决你的问题,请参考以下文章