Ошибка 404 при создании страницы для загрузки файла csv в модель django

Я пытаюсь создать страницу, чтобы я мог загружать файлы csv в модель django-

MODELS.PY

from django.db import models

class March(models.Model):
    name = models.CharField(max_length = 60, choices=name_choice)
    march = models.CharField(max_length = 60, blank = True)
    may = models.CharField(max_length = 60, blank = True)

    def __str__(self):
        return self.name

VIEWS.PY

import csv, io
from django.contrib import messages
from django.contrib.auth.decorators import permission_required
from django.shortcuts import render
from django.http import HttpResponse
from .forms import CustomerForm, CustomerForm222, CustomerForm45
from . import models


@permission_required('admin.can_add_log_entry')    
def contact_upload(request):
    template = "contact_upload.html"

    prompt = {

        'order': 'Order of CSV should be name, march, may'
    }

    if request.method == "GET":
        return render(request, template, prompt)

    csv_file = request.FILES['file']

    if not csv_file.name.endswith('.csv'):
        message.error(request, 'This is not a csv file')

    data_set = csv_file.read().decode('UTF-8')
    io_string = io.StringIO(data_set)
    next(io_string)
    for column in csv.reader(io_string, delimiter = ',' , quotechar = "|"):
        _, created = Contact.objects.update_or_create(
            name=column[0],
            march = column[1],
            may = column[2]
        )
    context = {}
    return render(request, template, context)

URLS.PY

from django.urls import path
from .views import contact_upload
from . import views


urlpatterns = [
    path('', views.index, name="index"),
    path('book/<int:book_id>', views.book_by_id, name='book_by_id'),
    path('upload-csv/', views.contact_upload, name = "contact_upload"),
]

HTML TEMPLATE:

<form method="post" enctype = "multipart/form-data">
    {% csrf_token %}
    <label>Upload a File </label>
    <input type = "file" name="file">
    <p>Only accepts CSV file</p>
    <button type = "submit">Upload</button>
</form>

СТРАНИЦА ОШИБКИ:

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/upload-csv
Raised by:  django.contrib.admin.sites.catch_all_view
Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:

...
...

The current path, admin/upload-csv, matched the last one.

Интересно, что последняя строка на странице ошибки говорит, что файл найден, но все равно показывает 404 ошибку. Не уверен, что пошло не так.

Урлы Django все еще немного смущают меня.

Что я упускаю? Любая помощь будет принята с благодарностью.

Спасибо.

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