Как показать профиль пользователя в 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' %}