Действие формы не вызывает нужную функцию из views.py в Django

Я новичок в Django и делаю свой первый проект на нем. Я сделал форму в файле index.html, эта форма принимала изображение и отправляла его в функцию predictImage в файле views.py. Функция predictImage применяла модель YOLO к изображению и возвращала изображение с метками на ту же index.html страницу.

Это работало нормально, и я получал требуемые результаты. После нажатия кнопки отправки я получал перенаправление на index.html/predictImage, где показывались результаты. (У меня в index.html были добавлены условия для показа результатов)

Затем я решил добавить модель Users и сделал для себя страницу Login, пользователь должен был войти в систему, прежде чем он сможет загрузить изображение. Для этого я также добавил сессии.

Теперь я создал модель Photo, чтобы хранить каждую фотографию, которую загружает каждый пользователь. Все это было успешно сделано, но теперь, когда я попытался сделать то же самое снова, т.е. загрузить изображение и отправить его, это не сработало, и вместо этого перенаправило меня на index.html

Я попытался отладить это, и обнаружил, что я даже не перехожу к views.predictImage при нажатии на кнопку submit. Я не могу понять, почему это происходит, хотя единственными двумя новыми вещами, которые я добавил в index.html, были скрытый входной файл (для получения значения имени пользователя из сессии) и кнопка Logout для выхода из сессии.

Вот мой файл models.py (позже я добавил фотомодель)

from django.db import models
import datetime
import os
# Create your models here.


class Users(models.Model):
    username = models.CharField('User Name', null=False, max_length = 50)
    password = models.CharField('User Password', max_length=50)

    def __str__(self):
        return self.username

def filepath(request, filename):
    old_filename = filename
    timeNow = datetime.datetime.now().strftime('%Y%m%d%H:%M:%S')
    filename = "%s%s" % (timeNow, old_filename)
    return os.path.join('uploads/', filename)

class Photo(models.Model):
    id = models.AutoField(primary_key=True)
    image = models.ImageField(upload_to=filepath) 
    uploader = models.ForeignKey(Users, default=None, on_delete=models.CASCADE)

Это мой файл urls.py, в него не было внесено никаких изменений.

from django.contrib import admin
from django.urls import path, re_path 
from firstApp import views
from django.conf.urls.static import static 
from django.conf import settings

urlpatterns = [
    re_path('admin/', admin.site.urls),
    re_path('index', views.index, name = 'index'),
    re_path('login', views.login, name='login'),
    re_path('logout', views.logout, name='logout'),
    re_path('', views.login, name="Login"),
    # re_path('', views.login_submit, name='Home'),
    re_path('predictImage', views.predictImage, name='predictImage'),
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Это мой views.py файл

@csrf_exempt
def login(request):
    if request.session.has_key('is_logged'):
        return redirect('index')
    if request.POST:
        if 'user_name' not in request.POST:
            return render(request, 'login.html')
        username_entry = request.POST['user_name']
        password = request.POST['password']
        count = Users.objects.filter(username=username_entry).count()
        if count > 0:
            user_password = Users.objects.values('password').filter(username=username_entry)[0]
            if password == user_password['password']:
                request.session['is_logged'] = True
                request.session['user_id'] = request.POST['user_name']
                return redirect('index')
            else:
                messages.error(request, "Invalid Password")
                return render(request, 'login.html')
        else:
            messages.error(request, "Invalid Username")
            return render(request, 'login.html')
    else:
        return render(request, 'login.html')
    


def index(request):
    if request.session.has_key('is_logged'):
        current_user_id= request.session['user_id']
        return render(request, 'index.html', {'ID':current_user_id})
    else:
        return redirect('login')


    # context = {'a':1}
    # return render(request, 'index.html', context)

def predictImage(request):
    username = request.POST.get('username')
    print("HEREEEE: ", username) # was using to check if this function is being called or not
    # All the below lines are irrelevant to the bug
    # They are only saving the Image file and calling YOLO Model Function to get Resultant image
    # All of this was worknig before as well 
    fileObj = request.FILES['filePath']
    fs = FileSystemStorage()
    filePathName = fs.save(fileObj.name, fileObj)
    filePathName = fs.url(filePathName)
    testimage = '.'+filePathName
    img_result, resultant_array, total_objects = detect_image(testimage)
    cv2.imwrite("media/results/" + fileObj.name, img=img_result)

    context = {'filePathName':"media/results/"+fileObj.name, 'predictedLabel': list(resultant_array.keys()), 'values': list(resultant_array.values()), 'total_objects': total_objects}
    #context = {}
    return render(request, 'index.html', context)

def logout(request):
    del request.session['is_logged']
    return redirect('login')

А это мой index.html файл (содержит только ту часть, где существует форма, я могу поделиться остальной частью файла, если нужно, но это не связано с этой проблемой, насколько я знаю)

  {% csrf_token %}


  <div id="content">

    <!-- Topbar -->
    <nav class="navbar navbar-expand-lg navbar-light bg-light  m-5 mx-5 justify-content-center">

      <!-- Sidebar Toggle (Topbar) -->
      <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
        <i class="fa fa-bars"></i>
      </button>

      <!-- Topbar Search -->
      <div class=" mx-5 font-weight-bold">
        Uplaod Image
      </div>
      <input class=" " type="file" name="filePath">
      <input hidden class = "" name="username" value="{{ ID }}">
      <input type="submit" class="btn-lg btn-success" value="Submit">
      <!-- Topbar Navbar -->
    </form>

      <a class="btn-lg btn-danger" href={% url 'logout' %}>  Logout</a>


    </nav>
    <!-- End of Topbar -->
Вернуться на верх