在迷你虚拟社区中,我有一个profile_view函数,以便我可以查看任何注册用户的配置文件。配置文件视图功能有一个参数作为该配置文件所属用户的id,所以当我想要访问用户2的配置文件例如,我这样称呼它: http://127.0.0.1:8000/accounts/profile_view/2/django用户名在url中,而不是id
我的问题是,我想在URL中有用户名,而不是ID。 我尝试修改我的代码,如下所示,但它仍然不起作用。这里是我的代码:
观点:
def profile_view(request, user):
u = User.objects.get(pk=user)
up = UserProfile.objects.get(created_by = u)
cv = UserProfile.objects.filter(created_by = User.objects.get(pk=user))
blog = New.objects.filter(created_by = u)
replies = Reply.objects.filter(reply_to = blog)
vote = Vote.objects.filter(voted=blog)
following = Relations.objects.filter(initiated_by = u)
follower = Relations.objects.filter(follow = u)
return render_to_response('profile/publicProfile.html', {
'vote': vote,
'u':u,
'up':up,
'cv': cv,
'ing': following.order_by('-date_initiated'),
'er': follower.order_by('-date_follow'),
'list':blog.order_by('-date'),
'replies':replies
},
context_instance=RequestContext(request))
和我的网址:
urlpatterns = patterns('',
url(r'^profile_view/(?P<user>\d+)/$',
profile_view,
name='profile_view'),
在此先感谢!
根据我在django/contrib/auth/forms.py中看到的,我认为使用更好的正则表达式来获取用户名是 (?P [\ w。@ + - ] +) –
2011-04-16 01:04:29
如果用户名是一封电子邮件,你不希望这个信息是公开的吗?你可以使用用户的名字和姓氏,但这可能是重复的,所以我认为我们应该在ID上添加一个ID或一个哈希值 – jobima 2014-07-18 10:40:27