gpt4 book ai didi

python - django 中特定页面失去身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:16 24 4
gpt4 key购买 nike

如果我在登录后移动特定页面,我会在 django 中丢失身份验证。然后我移动另一个页面,无需登录即可再次获得身份验证。

def user(request, user_id):
"""
Display a user

:param request: request
:param user_id: user id
:return: render
"""
_user = get_object_or_404(User, id=user_id)
_groups = _user.groups

return render(
request,
'archive/user/user.html',
{
'user': _user,
'groups': _groups.exclude(privacy='CLOSED'),
}
)

这是有问题的查看代码。

最佳答案

如果有基于类的 View ,您应该使用LoginRequiredMixins。这将检查用户是否通过身份验证来访问该页面。如果通过身份验证,则会显示该页面,否则您可以再次重定向到登录页面。

示例:

from django.contrib.auth.mixins import LoginRequiredMixin

class home(LoginRequiredMixin,View):
login_url = "/"
def get(self,request):
user = request.user
s = Person.objects.get(pk=user.id)
return render(request,'chat/home.html',locals())

在上面的示例中,如果用户未经过身份验证login_url 是您提供重定向链接的位置。在这里,我已重定向到根目录,即登录页面。您可以这样定义您的 View 。

对于基于函数的 View ,您可以使用login_required 装饰器

为了安全起见,您还应该使用 Django session 。

关于python - django 中特定页面失去身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34469076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com