Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 局部变量';提交';分配前参考_Django_Python 3.x - Fatal编程技术网

Django 局部变量';提交';分配前参考

Django 局部变量';提交';分配前参考,django,python-3.x,Django,Python 3.x,我在django项目中遇到了这个错误。我的应用程序名为“scoresubmission” 基本上,我在网站上有一个功能,允许用户下载报告。 因此,在我的views.py文件中,我有report函数和import report.py文件,其中显示了如何构建报告 它显示了这行代码中发生的错误: submission=Submission.objects.get(month=month,year=reportyear,program=program) Views.py submission=Su

我在django项目中遇到了这个错误。我的应用程序名为“scoresubmission” 基本上,我在网站上有一个功能,允许用户下载报告。 因此,在我的views.py文件中,我有report函数和import report.py文件,其中显示了如何构建报告
它显示了这行代码中发生的错误:

 submission=Submission.objects.get(month=month,year=reportyear,program=program)
Views.py

 submission=Submission.objects.get(month=month,year=reportyear,program=program)
def report(request):    

    from scoresubmission.report import reportA, reportB, reportC
    reportType = request.POST["reportType"]
    reportYear = int(request.POST["reportYear"])

    if reportType == 'a':
        report_content = reportA(reportYear)
        response = HttpResponse(report_content, content_type="text/csv")
        response['Content-Disposition'] = 'inline; filename=5SAuditYearlySummaryReport_%d.xlsx' %reportYear
report.py,其中包含相关代码 对于设施中的设施: 工作表.写入(行、列、设施.名称、设施\u格式)

 submission=Submission.objects.get(month=month,year=reportyear,program=program)
回溯(最近一次呼叫最后一次): 文件“C:\Users\CHLOZHAO\AppData\Local\Programs\Python\Python37\lib\site packages\django\core\handlers\exception.py”,第34行,在内部 响应=获取响应(请求) 文件“C:\Users\CHLOZHAO\AppData\Local\Programs\Python\Python37\lib\site packages\django\core\handlers\base.py”,第115行,在get响应中 response=self.process\u异常\u由\u中间件(e,请求) 文件“C:\Users\CHLOZHAO\AppData\Local\Programs\Python\Python37\lib\site packages\django\core\handlers\base.py”,第113行,在get响应中 响应=包装的回调(请求,*回调参数,**回调参数) 文件“C:\Users\CHLOZHAO\AppData\Local\Programs\Python\Python37\lib\site packages\django\contrib\auth\decorators.py”,第21行,在包装视图中 返回视图功能(请求,*args,**kwargs) 报告第185行的文件“C:\D Drive\5S Audit Website\my5saudit\scoresubmission\views.py” 报告内容=报告A(报告年度) 文件“C:\D驱动器\5S审计网站\my5saudit\scoresubmission\report.py”,第79行,在reportA中 除submission.DoesNotExist外: UnboundLocalError:赋值前引用了局部变量“submission”

 submission=Submission.objects.get(month=month,year=reportyear,program=program)

在除之外的
中,您需要参考类
提交
,而不是对象,因为它本身在当时并不存在:

 submission=Submission.objects.get(month=month,year=reportyear,program=program)
try:
    submission=Submission.objects.get(month=month,year=reportyear,program=program)
    print(submission)
    avg_score=Result.objects.filter(submission=submission).aggregate(Avg('NewScore'))
    #print avg_score.get('NewScore__avg')
    avg_totalscore=(avg_totalscore + avg_score.get('NewScore__avg'))/count
    count=count+1
except Submission.DoesNotExist:  # reference to the class, not the object
    pass
试试看:
submission=submission.objects.get(月=月,年=报告年,计划=计划)
打印(提交)
平均分数=结果。对象。过滤器(提交=提交)。聚合(平均('NewScore'))
#打印平均分数。获取('NewScore\uu avg')
avg_totalscore=(avg_totalscore+avg_score.get('NewScore__平均'))/count
计数=计数+1
Submission.DoesNotExist除外:#引用类,而不是对象
通过
如果
Sibmission.objects.get(..)
失败,那么
submission
变量永远不会被赋值,因此
submission.DoesNotExist
没有意义

 submission=Submission.objects.get(month=month,year=reportyear,program=program)
实际上,您不应该使用对象,而应该始终使用模型类本身来引用
DoesNotExist
exception类

 submission=Submission.objects.get(month=month,year=reportyear,program=program)