0

我正在尝试用 django 编写一个基本网站。我需要用户(我仍然使用默认用户)能够登录、注销、注册等。我已经设置了基本功能,但我希望用户能够访问它会访问的个人资料页面显示用户的基本信息。当然,个人资料页面必须使用 login_required 装饰器,但我现在设置它的方式是,一旦任何人登录,他们就可以看到任何个人资料页面。

URL 文件的一部分:

url(r'^profile/(?P<username>[\w.@+-]+)/$',
    login_required(ProfilePageView.as_view())),

如您所见,网址应包含“profile/”,后跟用户的用户名。我该如何设置它,以便只有在 URL 的“profile/”部分之后具有用户名的用户才能看到该页面。使用此代码,某些用户可以使用任何用户名登录,然后只需更改 url 并重新发送获取请求。

4

1 回答 1

0

你可以做这样的事情。如果您为每个用户创建了 Profile 模型,您还可以使用 profile_info=request.user.profile 访问 Profile 信息

def login_user(request):
    username=request.POST.get('username','')
    password=request.POST.get('password','')
    user=auth.authenticate(username=username,password=password)
    if user is not None:
        auth.login(request,user)
        return HttpResponseRedirect('/loggin/')

    else:
        return HttpResponseRedirect('/invalid/')



def loggin(request):
    username=None
    if request.user.is_authenticated:
        #profile_info=request.user.profile
        info=request.user
        return render(request,'base.html',locals())


<head>

<body>
<h5>{{info.first_name}}{{info.first_name}}</h5>
</body>
</head>

于 2019-02-21T20:30:54.830 回答