我有一个网址" mywebsite / home"我有登录表格的地方。我在登录到另一个网址" mywebsite / users"时重定向用户。我在我的数据库中有登录凭据,它应该只供有限的人使用。那么如何才能使重定向成为查看" mywebsite / users&#34 ;?的必要条件。我正在使用django,现在知道URL的任何人都可以访问该页面。
我的观点如下:
def home(request):
usr = request.GET.get('username')
pas = request.GET.get('password')
userdata = Login.objects.filter(Q(username = usr) | Q(userid = usr))
if Login.objects.filter(Q(username = usr) | Q(userid = usr)).exists():
p = list(userdata.values('password'))
b = p[0]['password']
if pas == b:
request.session['usr'] = usr
return redirect('/users')
def users(request):
return render(request, "ex.html")
答案 0 :(得分:0)
由于您使用的是谷歌登录,因此您可能无法使用@login_required
装饰器。根据上面定义的视图,您在会话中添加了一个键'usr'
,我认为可用于检查是否用户具有有效登录名。然后你可以使用这个自定义装饰器:
def user_login(function):
''' User login decorator'''
def wrapper(request, *args, **kw):
''' wrapper '''
if 'usr' not in request.session:
return HttpResponseRedirect('/home/')
else:
return function(request, *args, **kw)
return wrapper
并将其用作
@user_login
def users(request):
return render(request, "ex.html")
确保在用户注销时从会话中删除密钥