Загрузка текстовых файлов в Django
У меня есть form.py
, включающий Floatfield
и Charfield
. Теперь я хочу добавить новый Filefield
для загрузки текстового файла. Но у меня ничего не получается.
Float var загружается успешно, и я вижу, что они изменяются с изменением ввода, но я не могу найти файл в расположенных папках
А также, как я могу проверить правильность расширения файлов? Я должен сделать это в представлении или модели?
Может ли кто-нибудь помочь мне? Я действительно боролся с этим.
model.py
file = models.FileField(upload_to='/Folder', null = True)
form.py
file = forms.FileField(label='data', required=False)
view.py соответствует структуре в официальном документе Django.
def handle_uploaded_file(f):
with open('./test_temp_file.txt', 'wb+') as destination:
for chunk in f.chunks():
destination.write(chunk)
def file_upload(request):
if request.method=='POST':
form = input_form(request.POST,request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['file'])
name = request.FILES['filename'].name
time = cleaned_data(timezone.now())
form = {
'name' : name,
'time' : time
}
return render(request, 'home/results.html',{'form':form})
else:
form = input_form()
return render(request, 'home/input.html', {'form': form})
Вам следует save
провести form
и рефакторинг кода.
def file_upload(request):
if request.method=='POST':
form = input_form(request.POST,request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['file'])
name = request.FILES['filename'].name
time = cleaned_data(timezone.now())
form = {
'name' : name,
'time' : time
}
form.save() # <-- save your form
return render(request, 'home/results.html',{'form':form})
else:
form = input_form()
return render(request, 'home/input.html', {'form': form})