Загрузка текстовых файлов в 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})
Вернуться на верх