Django вместо id пользователя подставляет id авторизованного пользователя.
path('profile/<pk>/', UserProfile.as_view(), name = 'profile_url'),
class UserProfile(View):
def get(self, request, pk):
user = User.objects.get(pk = pk)
username = user.username
name = user.first_name
surname = user.last_name
last_online = user.last_login
categories = Category.objects.all()
return render(request, 'profile.html', {'user': user,
'username': username,
'name': name,
'surname': surname,
'last_online': last_online,
'categories': categories})
<a class="nav-link" href="{% url 'profile_url' pk=user.id %}">Профиль</a>