Почему 'profile/<int:pk>' не работает в django

Я новичок в django. У меня проблема с профилями. Когда я открываю главную страницу или другие, меня выбивает на ошибку:

NoReverseMatch at /
Reverse for 'profile' with arguments '('',)' not found. 1 pattern(s) tried: ['registration/profile/(?P<pk>[0-9]+)\\Z']

Я не знаю, что с этим делать. Бум очень благодарен за помощь! Вот код: models.py:

import os.path
from PIL import Image
from django.contrib.auth.models import User
from django.db import models
from django.conf import settings
from django.db.models.signals import post_save
from django.dispatch import receiver


class reg(models.Model):
    email = models.CharField('email', max_length=50)
    password1 = models.CharField('password1', max_length=20)
    password2 = models.TextField('password2')

    def __str__(self):
        return self.email

    class Meta:
        verbose_name = 'registration'
        verbose_name_plural = 'registration'


class UserProfile(models.Model):
    user = models.OneToOneField(User, primary_key=True, verbose_name='user', related_name='profile', on_delete=models.CASCADE)
    name = models.CharField(max_length=20, blank=True, null=True)
    bio = models.TextField(max_length=500, blank=True, null=True)
    birth_date = models.DateField(null=True, blank=True)
    location = models.CharField(max_length=100, blank=True, null=True)
    picture = models.ImageField(upload_to='media/images', default='media/default.jpg', blank=True)

urls.py:

from django.contrib.auth import views as auth_views
from django.urls import path
from . import views
from .views import ProfileView
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    path('register/', views.register, name='register'),  # Remove leading slash from '/register'
    path('login/', auth_views.LoginView.as_view(), name='login'),
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
    path('profile/<int:pk>', ProfileView.as_view(), name='profile'),
]

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

views.py:

from django.contrib.auth import login, authenticate
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import JsonResponse
from django.views import View
from .forms import RegistrationForm
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.views.generic.detail import DetailView

from .models import UserProfile


def register(request):  # Change function name to match the URL pattern
    error = ''
    if request.method == 'POST':
        form = RegistrationForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user)
            messages.success(request, f'Аккаунт создан!')
            return redirect('profile')
        else:
            print(form.errors)

    form = RegistrationForm()

    data = {
        'form': form,
        'error': error
    }

    return render(request, 'registration/register.html', {'form': form})


class MyView(LoginRequiredMixin, View):
    login_url = '/login/'
    redirect_field_name = 'redirect_to'


@login_required
def profile(request):
    return render(request, 'registration/user_profile.html')


class ProfileView(View):
    def get(self, request, pk, *args, **kwargs):
        profile = UserProfile.objects.get(pk=pk)
        user = profile.user

        context = {
            'user': user,
            'profile': profile,
        }
        return render(request, 'registration/user_profile.html', context)

layout.html (ошибка возникает в layout.html!):

user_profile.html:

{% extends 'main/layout.html' %}
{% load static %}
{% block content %}
    <link rel="stylesheet" href="{% static 'profile/css/profile.css'%}">
<div class="row justify-content-center mt-5">
    <div class="features">
        <img class="rounded-circle account-img" src="{{ profile.picture.url }}" style="border-radius: 50%" height="150px" width="150px" />
        {% if profile.name %}
        <h3 class="py-4">{{ profile.name }}</h3>
        {% endif %}

        {% if profile.location %}
        <h3 class="py-4">{{ profile.location }}</h3>
        {% endif %}

        {% if profile.birth_date %}
        <h3 class="py-4">{{ profile.birth_date }}</h3>
        {% endif %}

        {% if profile.bio %}
        <h3 class="py-4">{{ profile.bio }}</h3>
        {% endif %}
    </div>
</div>
{% endblock content %}

Я перепробовал видео и статьи из Интернета. Ничего не помогает

1) user_id

'profile/int:pk

нужно число.

Но вы перенаправляете на return redirect('profile').

2) абсолютный путь

Вам нужно перенаправить на абсолютный путь. В противном случае он будет перенаправлять на относительный путь registration/profile. Что не является правильным шаблоном.

Попробуйте ниже.

  1. Части

return redirect(f'/profile/{user.id}')

#Or

return redirect(f'/profile/{request.user.id}')

  1. Части

Попробуйте {% url 'profile' user.id %}.

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