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中的“赋值前引用的局部变量'响应'”错误的主要内容,如果未能解决你的问题,请参考以下文章

Django - 列中的空值违反了 Django Admin 中的非空约束

Django 框架篇: Django中的Form 组件

django(12)信号

Django中的信号及其用法

Django中的信号及其用法

Django中的信号