Как показать профиль пользователя в html django

я создаю пользователя auth и делаю модель профиля пользователя с сигналами для создания профиля типа User

но я хочу показать профиль пользователя в шаблоне

---- модель

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save

# Create your models here.
class profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    music = models.CharField(max_length=50)
    skils = models.CharField(max_length=50)
    search = models.CharField(max_length=50)
    posts = models.CharField(max_length=50)
    boi = models.TextField()
    img = models.ImageField(upload_to="profile-img")

    def __str__(self):
        #return self.user or 'User'
        return str(self.id)

def create_profile(sender, **kwargs):
    if kwargs['created']:
        user_profile = profile.objects.create(user=kwargs['instance'])

post_save.connect(create_profile, sender=User)

---- путь

path('profile/<int:id>', views.profile, name="profile")

----- просмотров

def profile(request, id):
    ff = profile.objects.get(id=id)
    context = {'ff' : ff}
    return render(request, 'profile.html', context)

просмотры не работают я не знаю в чем проблема

в html...

{% url 'profile' profile.id %}

как показать профиль пользователя в html django

Если вы хотите, чтобы пользователь мог показать свой профиль, вам нужно get создать объект Profile, используя текущий экземпляр пользователя вместо profile id вот так...

views.py

def profile(request):
    ff = profile.objects.get(user=request.user) # This query object give logged in user profile
    context = {'ff' : ff}
    return render(request, 'profile.html', context)

Путь к url профиля становится таким

urls.py

path('profile/', views.profile, name="profile")

Html url становится таким

{% url 'profile' %}

NOTE - Не нужно передавать id профиля, потому что здесь мы получаем профиль текущего пользователя, который вошел в систему

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