【问题标题】:" local variable 'response' referenced before assignment " error in djnagodjango 中的“赋值前引用的局部变量‘response’”错误
【发布时间】:2019-09-10 09:48:31
【问题描述】:

## 在创建视图“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')

【问题讨论】:

  • 请向我们展示完整的错误回溯!
  • 显然,if request.method =='POST' 条件为 False。

标签: python django django-models django-rest-framework


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 2020-05-05
    • 2020-08-22
    • 1970-01-01
    相关资源
    最近更新 更多