Django - я всегда получаю свой профиль, когда хочу просмотреть профиль другого пользователя

Когда бы я ни пытался просмотреть профиль других людей, он всегда возвращает мой собственный профиль снова, я не знаю, что не так, и я пытался вызвать request.user, но это, кажется, не работает

views.py

def UserProfile(request, username):
    user = get_object_or_404(User, username=username)
    profile = Profile.objects.get(user=user)
    url_name = resolve(request.path).url_name
    
    context = {
        'profile':profile,
        'url_name':url_name,
    }

    return render(request, 'userauths/profile.html', context)

urls.py основной проект

from userauths.views import UserProfile

urlpatterns = [
    path('admin/', admin.site.urls),
    path('users/', include('userauths.urls')),
    path('<username>/', UserProfile, name='profile'),

]

index.html

{% for creator in creators %}
     <a href="{% url 'profile' creator.user %}"><img class="avatar-img rounded-circle" src="{{creator.user.profile.image.url}}" alt="creators image" ></a></div>
     <h5 class="card-title"><a href="{% url 'profile' creator.user %}"> 
      {{creator.user.profile.first_name}} {{creator.user.profile.last_name}} {% if creator.verified %} <i class="bi bi-patch-check-fill text-info smsall" ></i> {% else %}{% endif %} </a></h5>
     <p class="mb-2">{{creator.user.profile.bio}}</p></div>
{% endfor %}

Вместо этого:

<a href="{% url 'profile' creator.user %}">

вам стоит попробовать:

<a href="{% url 'profile' creator.user.username %}">

Из предположительно рабочего утверждения get_object_or_404(User, username=username) я предполагаю, что username является полем (надеюсь, уникальным) модели User. Поэтому вы должны передать его в URL, а не всю модель User.

Я только что исправил это, в моем профиле.html, я использую {{request.user.profile.first_name}} для отображения информации. Я должен был использовать {{profile.first_name}} и т.д., и все

Спасибо всем, кто помог

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