django中的“赋值前引用的局部变量'响应'”错误

问题描述 投票:-4回答:1

##在创建视图'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')
python django django-models django-rest-framework
1个回答
0
投票

可能,您不使用POST方法调用此视图。

if request.method =='POST':没有执行,所以return HttpResponse(response,content_type='text/json')找不到响应变量。

© www.soinside.com 2019 - 2024. All rights reserved.