Что не так с моей загрузкой CSV в Django?

Я создал, как мне кажется, довольно стандартный код, но файл, похоже, не загружается! Моя папка set up пуста, плюс файл не отображается после нажатия кнопки submit!

При нажатии кнопки submit я вижу только "GET /?csrfmiddlewaretoken=9JefYLkycrupVof72b1oujZ2DSi0o5BlfujkW27PhVDWBcoZyzc74aZ9yckOkJUz&myfile=file+.csv HTTP/1.1" 200 2844

и аналогичные сообщения

Мой код: Основная папка проекта:

В файл setting.py добавлено

MEDIA_URL = '/documents/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'documents')

urlpatterns = [
]
if DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

url.py

from django.contrib import admin
from django.urls import path
from django.conf.urls import include
from mainsite import views as main

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', main.model_form_upload, name= 'index'),
    path('contact/', include('contact.urls')),
    path('explanation/', include('modelexpl.urls')),
    path('uploads/', main.model_form_upload, name='model_form_upload')


]

Затем в папке моего проекта:

urls.py

from django.shortcuts import render
from django.http import HttpResponse
from django.urls import path
from mainsite import views
# Create your views here.

urlpatterns = [
path('', views.index, name='index')
]

models.py

from django.db import models

# Create your models here.

class Document(models.Model):
    description = models.CharField(max_length=200, blank= True)
    document = models.FileField(upload_to='documents/')
    uploaded_at = models.DateTimeField(auto_now_add=True)

views.py: изначально я добавил следующую функцию:

from django.shortcuts import render
from django.http import HttpResponse
from mainsite.models import Document
from mainsite.forms import DocumentForm
from django.core.files.storage import FileSystemStorage

# Create your views here.

def index (request):
    placeholder = {'test' : 'test'}
    documents = Document.objects.all()
    return render(request, 'mainsite/csv.html', { 'documents': documents })


def model_form_upload(request):
    if request.method == 'POST':
        form = DocumentForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/success/url/')
            print("uploaded")

    else:
        form = DocumentForm()
        print("trying")

    return render(request, 'mainsite/csv.html', {'form' : form})


def model_form_upload(request):
    if request.method == 'POST' and request.FILES['myfile']:
        myfile = request.FILES['myfile']
        fs = FileSystemStorage()
        filename = fs.save(myfile.name, myfile)
        model_form_upload = fs.url(filename)
        return render(request, 'mainsite/csv.html', {
            'model_form_upload': model_form_upload
        })
    return render(request, 'mainsite/csv.html')

но ни то, ни другое не работает.

Я думаю, может это мой HTML файл?

{% extends 'mainsite/index.html' %}
{% load static %}

{% block content %}



    <form method="post" enctype="multipart/form-data">
      {% csrf_token %}

    <input type="file" name="myfile">
    <button type="submit">Upload</button>
</form>

{% if model_form_upload %}
  <p>File uploaded at: <a href="{{ model_form_upload }}">{{ model_form_upload }}</a></p>
{% endif %}

    {% endblock %}


Благодарю за помощь, я потратил целую вечность, пытаясь отладить это!!!

Вернуться на верх