正在尝试读取django中的文本文件



我无法从view.py 读取文件的内容

以下是我的代码:

def home_view (request, *args, **kwargs):
ksh_test_result=AutomationTestResult.objects.values('tatr2tafmc__jobcommand', 'ksh_completion','ftp_log_abs_path','aftp_log_abs_path').distinct()
ksh_drilldown_data=AutomationTestResult.objects.all()
for ksh in ksh_test_result:
ftp_log_file[ksh.tatr2tafmc__jobcommand]=open(ksh.ftp_log_abs_path, 'r').read()
aftp_log_file[ksh.tatr2tafmc__jobcommand]=open(ksh.aftp_log_abs_path, 'r').read()
print(ftp_log_file)
print(aftp_log_file)
context={
"ksh_list" : ksh_test_result,
"ksh_drilldown" : ksh_drilldown_data,
"ftp_log" : ftp_log_file,
"aftp_log" : aftp_log_file
}
return render(request, "home.html", context)

我正在从数据库中读取文件的路径。当我运行此代码时,我得到以下错误代码

Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
Internal Server Error: /
Traceback (most recent call last):
File "/home/nmehta/Projects/GATI/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/nmehta/Projects/GATI/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/nmehta/Projects/GATI/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/nmehta/Projects/GATI/src/KTA/dashboard/views.py", line 11, in home_view
ftp_log_file[ksh.tatr2tafmc__jobcommand]=open(ksh.ftp_log_abs_path, 'r').read()
AttributeError: 'dict' object has no attribute 'ftp_log_abs_path'
[20/Nov/2019 14:31:27] "GET / HTTP/1.1" 500 65923

由于使用values()方法,因此需要将ksh.ftp_log_abs_path更改为ksh['ftp_log_abs_path']values()返回一个包含字典而非模型实例的查询集。

如果你检查文档中的这种方法:

values((。。。返回返回字典而不是模型的QuerySet实例,当用作可迭代项时。每一本字典表示对象,键与属性相对应模型对象的名称。

代码的另一个问题是读取for循环中的文件。如果只有一个文件,请使用get_object_or_404((或get((Queryset方法。

相关内容

  • 没有找到相关文章

最新更新