将点符号作为URL中的用户名字符串处理

时间:2017-09-11 18:50:33

标签: python django

网址转发到右侧页面,但在页面上,当用户名有一个点时,它会出现404错误。有没有办法处理这个问题,还是应该转发ID?这样做的正确方法是什么?

url.py

url(r'profile/(?P<username>[-\w.]+)$', views.get_user_profile, name='user_profile'),

views.py

def get_user_profile(request, username):
    user = User.objects.get(username=username)
    render (request, 'pages/user_profile.html', {"user":user})

1 个答案:

答案 0 :(得分:0)

在你的urls.py中:

url(r'profile/(?P<pk>[0-9]+)$', views.get_user_profile, name='user_profile)

在观点中:

def get_user_profile(request, pk):
    user = User.objects.get(pk=pk)
    render (request, 'pages/user_profile.html', {"user":user})

另一种方法是将用户名作为get参数发送:

www.yourapp.com?username=abc

然后在观点中:

def get_user_profile(request):
    username = request.GET.get('username')
    user = User.objects.get(username=username)  # need to catch error if not found
    render (request, 'pages/user_profile.html', {"user":user})
相关问题