os.path.join() 给出 InMemoryUploadFile 错误
os.path.join() gives InMemoryUploadFile error
我写了一个 POST api 来发布一个文件。我想打开文件并解析文件中的 JSON 内容。但是 os.path.join() 行似乎不起作用。我收到“'InMemoryUploadedFile' 对象没有属性 'startswith'”异常。包含了下面使用的代码。
def schedule_load(file_name):
print file_name
file_json = default_storage.open(os.path.join("schedule_files", file_name), 'r')
var = file_json.read()
print var
file_json.close()
schedule = json.loads(var)
我的POST方法:
@api_view(['POST'])
def post_schedule(request):
print "post_schedule"
if request.method == 'POST':
print "if POST"
form = ScheduleForm(request.POST, request.FILES)
file_name = form['schedule_file'].value()
if form.is_valid():
print "is_valid"
form.save()
schedule_load(file_name)
return JsonResponse({"status": "success"}, status=status.HTTP_200_OK)
else:
return JsonResponse({"status": "Invalid file"}, status=status.HTTP_200_OK)
因为您要处理的是 InMemoryUploadedFile
而不是文件名。您的代码应更改为
def schedule_load(file_name):
var = file_name.read()
print var
我写了一个 POST api 来发布一个文件。我想打开文件并解析文件中的 JSON 内容。但是 os.path.join() 行似乎不起作用。我收到“'InMemoryUploadedFile' 对象没有属性 'startswith'”异常。包含了下面使用的代码。
def schedule_load(file_name):
print file_name
file_json = default_storage.open(os.path.join("schedule_files", file_name), 'r')
var = file_json.read()
print var
file_json.close()
schedule = json.loads(var)
我的POST方法:
@api_view(['POST'])
def post_schedule(request):
print "post_schedule"
if request.method == 'POST':
print "if POST"
form = ScheduleForm(request.POST, request.FILES)
file_name = form['schedule_file'].value()
if form.is_valid():
print "is_valid"
form.save()
schedule_load(file_name)
return JsonResponse({"status": "success"}, status=status.HTTP_200_OK)
else:
return JsonResponse({"status": "Invalid file"}, status=status.HTTP_200_OK)
因为您要处理的是 InMemoryUploadedFile
而不是文件名。您的代码应更改为
def schedule_load(file_name):
var = file_name.read()
print var