URL-адрес пользователя в Django и проблема с идентификатором userprofile - PullRequest
0 голосов
/ 07 июня 2010

У меня есть мини-сообщество, где каждый пользователь может искать и находить профиль другого пользователя. 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 %}

1 Ответ

2 голосов
/ 07 июня 2010

Заменить

cv = UserProfile.objects.filter(created_by = request.user)
blog = New.objects.filter(created_by = request.user)

С

#u is UserProfile.objects.get(pk=id)
cv = UserProfile.objects.filter(created_by = u)
blog = New.objects.filter(created_by = u)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...