【发布时间】:2018-06-21 01:16:01
【问题描述】:
现在我已经阅读了关于这个错误的所有帖子,我可以得出结论,我的错误是完全不同的情况。
错误:
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")
我不知道我错过了什么,显然instance 在对其进行任何操作之前已被初始化。
【问题讨论】:
-
instance未在异常处理程序中初始化。 -
在try块之外引用实例,或者在捕获到异常时再次引用它
-
@StephenRauch 指出。我现在试试
标签: django python-2.7