我有一个迷你社区,每个用户都可以搜索并找到其他用户的个人资料。 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 %}
答案 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)