Представление main.views.view не вернуло объект HttpResponse. Вместо этого оно вернуло None
У меня есть функция загрузки. Но когда я пытаюсь загрузить файл. Я получаю эту ошибку:
ValueError at /controlepunt140
The view main.views.view didn't return an HttpResponse object. It returned None instead.
Так вот шаблон:"
<form
class="form-inline"
role="form"
action="/controlepunt140"
method="POST"
enctype="multipart/form-data">
<div class="form-group">
{% csrf_token %} {{ form }}
<button type="submit" name="form_excel" onclick="test()" class="btn btn-warning">
Upload!
</button>
</div>
<div class="form-outline">
<div class="form-group">
<textarea class="inline-txtarea form-control" id="" cols="65" rows="25">
{{content_excel}}</textarea
>
</div>
</div>
</form>
и views.py:
def post(self, request):
submitted_form = ExcelForm(request.POST, request.FILES)
content_excel = ''
if request.POST.get('form_excel') is not None:
if submitted_form.is_valid() and request.POST:
excel_file = request.FILES["upload_file"]
excel_file.save()
wb = openpyxl.load_workbook(excel_file)
worksheet = wb['Sheet1']
print(worksheet)
excel_data = list()
content_excel = excel_data
return render(request, "main/controle_punt140.html", {
'form': ExcelForm(),
"content_excel": content_excel,
})
return render(request, "main/controle_punt140.html", {
"form": submitted_form,
"content_excel": content_excel,
})
и forms.py:
class ExcelForm(forms.Form):
upload_file = forms.FileField()
Вопрос: как это решить?
Похоже, что какое-то условие if недействительно, поэтому представление не возвращает HttpResponse, или проблема может быть связана с тем, что не происходит перенаправления после проверки (т.е. submitted_form.is_valid()), поэтому попробуйте следующий вид:
def post(self, request):
submitted_form = ExcelForm(request.POST, request.FILES)
content_excel = ''
if request.POST.get('form_excel') is not None:
if submitted_form.is_valid() and request.POST:
excel_file = request.FILES["upload_file"]
excel_file.save()
wb = openpyxl.load_workbook(excel_file)
worksheet = wb['Sheet1']
print(worksheet)
excel_data = list()
content_excel = excel_data
return render(request, "main/controle_punt140.html", {
"form": ExcelForm(),
"content_excel": content_excel,
})
else:
print('submitted form is not valid check it.')
else:
print('form-excel value is not in request.POST.get()')
return render(request, "main/controle_punt140.html", {
"form": submitted_form,
"content_excel": content_excel,
})