Django URL用户ID与userprofile id问题

时间:2010-06-07 10:02:28

标签: django indexing

我有一个迷你社区,每个用户都可以搜索并找到其他用户的个人资料。 Userprofile是一个类模型,与用户模型类相比索引不同(用户标识不等于userprofile标识)。

但我无法通过在URL中输入相应的ID来查看用户个人资料。我只看到当前登录用户的个人资料

为什么? 我还希望在我的URL中有用户名(也是用户表的主键)而不是id(数字)。

代码的有罪部分是:

我可以替换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 个答案:

答案 0 :(得分:2)

替换

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)