#python #html #django #django-models #django-views
#python #HTML #django #django-модели #django-просмотры
Вопрос:
Я создаю веб-приложение и хочу, чтобы оно отображало профиль другого пользователя через сообщение пользователя. Я имею в виду, когда пользователь нажимает на профиль другого пользователя, чтобы просмотреть информацию другого пользователя, тогда он покажет профиль другого пользователя. Я перепробовал все, но после нажатия на сообщение отображается имя текущей информации о пользователе.
Пожалуйста, помогите мне в этом. Большое вам спасибо. Я действительно буду признателен за вашу помощь.
Вот мой код:-
views.py
def post_profile(request,username):
poste = Profile.objects.get(user=request.user)
context = {'poste':poste}
return render(request, 'mains/post_profile.html', context)
models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,default='',unique=True)
full_name = models.CharField(max_length=100,default='')
date_added = models.DateTimeField(auto_now_add=True)
Пожалуйста, помогите мне в этом, я не знаю, в чем проблема
Комментарии:
1. В вашем
def post_profile
вы используетеuser = request.user
. Поскольку текущий пользователь запрашивает просмотр профиля других людей, будет показан профиль текущего пользователя.2. но что я должен использовать вместо него?
Ответ №1:
Вы можете попробовать это:
Создайте URL-адрес профиля и передайте user_id
с ним параметр.
urls.py
from django.urls import path
urlpatterns =[
....
path('profile/<int:user_id>', views.show_profile, name='show_profile'),
]
Теперь создайте представление и передайте user_id
ему параметр с request
параметром.
def show_profile(request, user_id):
poste = Profile.objects.get(user=user_id)
context = {'poste': poste}
return render(request, 'mains/post_profile.html', context)
Теперь покажите профиль пользователя в шаблоне.
Комментарии:
1. Уважаемый сэр, он показывает ошибку, обратную для ‘show_profile’, при этом аргументы не найдены. попробовано 1 шаблон (ы): [‘profile/(?P<user_id>[0-9] ) $’] сэр, можете ли вы сообщить свой адрес электронной почты, чтобы я мог поговорить с вами там, я покажу весь код там
2. Хорошо, это
lingayatajay2810@gmail.com
.