代码之家  ›  专栏  ›  技术社区  ›  Lee Merlas

赋值错误前引用的局部变量“instance”

  •  0
  • Lee Merlas  · 技术社区  · 6 年前

    现在我已经阅读了所有关于这个错误的文章,我可以得出结论,我的错误是完全不同的情况。

    错误: Local variable 'instance' referenced before assignment [21/Jun/2018 09:05:58] "POST /details/create/ HTTP/1.1" 400 54

    下面是我初始化的代码 instance :

    def create(request):
    if request.method == "POST":
        try:
            params = post_data(request)
    
            try:
                instance = Sales_detail.objects.get(id = params.get("id",None))
                params["item"] = instance.item.pk
                params["price"] = instance.price.pk
                params["sales"] = instance.sales.pk
                detail_form = Detail_form(params, instance = instance)
            except Sales_detail.DoesNotExist:
                params["item"] = instance.item.pk
                params["price"] = instance.price.pk
                params["sales"] = instance.sales.pk
                detail_form = Detail_form(params)
    
            if detail_form.is_valid():
                detail_form.save()
            else:
                raise_error(detail_form.errors,True)
    
            return success("Details successfully saved.")
        except Exception as e:
            return error(e)
    else:
        return redirect("dashboard")
    

    我不知道我错过了什么 实例 在用它做任何事情之前初始化。

    1 回复  |  直到 6 年前
        1
  •  0
  •   ramwin    6 年前

    此行出现错误

    instance = Sales_detail.objects.get(id = params.get("id",None))
    

    被处决。代码没有完全删除。所以这个例子还没有确定。然后代码转到

    params["item"] = instance.item.pk
    

    自从 instance 还没有定义,错误

    The error:  Local variable 'instance' referenced before assignment
    

    发生。