У меня есть мини-сообщество, где каждый пользователь может искать и находить профиль другого пользователя.
Userprofile - это модель класса, индексированная по-другому по сравнению с классом модели пользователя (идентификатор пользователя не равен идентификатору userprofile).
Но я не могу увидеть профиль пользователя, набрав в URL соответствующий идентификатор. Я вижу только профиль текущего пользователя .
Почему это?
Я также хотел бы иметь в своем URL имя пользователя (также первичный ключ таблицы пользователя), а не идентификатор (число).
Виновная часть кода:
Чем я могу заменить этот request.user, чтобы он действительно отображал пользователя, которого я искал, а не пользователя, вошедшего в данный момент?
def profile_view(request, id):
u = UserProfile.objects.get(pk=id)
cv = UserProfile.objects.filter(created_by = request.user)
blog = New.objects.filter(created_by = request.user)
return render_to_response('profile/publicProfile.html',
{
'u':u,
'cv':cv,
'blog':blog,
},
context_instance=RequestContext(request))
В файле urls.py (из приложения учетных записей):
url(r'^profile_view/(?P<id>\d+)/$',
profile_view,
name='profile_view'),
И в шаблоне:
<h3>Recent Entries:</h3>
{% load pagination_tags %}
{% autopaginate list 10 %}
{% paginate %}
{% for object in list %}
<li>{{ object.post }} <br />
Voted: {{ vote.count }} times.<br />
{% for reply in object.reply_set.all %}
{{ reply.reply }} <br />
{% endfor %}
<a href=''> {{ object.created_by }}</a> <br />
{{object.date}} <br />
<a href = "/vote/save_vote/{{object.id}}/">Vote this</a>
<a href="/replies/save_reply/{{object.id}}/">Comment</a> </li>
{% endfor %}