在网站开发过程中,经常会遇到这样的需求:
1、用户登陆系统才可以访问某些页面;
2、如果用户没有登陆而直接访问就会跳转到登陆界面;
3、用户在跳转的登陆界面中完成登陆后,自动访问跳转到之前访问的地址。
要实现这样的需求其实很简单:就是使用@login_required标签。在想相应的view方法的前面添加@login_required标签,并在settings.py中配置LGOIN_URL参数(即登陆url)。具体代码如下:
views.py
直接在当前页面展示数据的函数中,加上@login_required就可以了
from django.contrib.auth.decorators import login_required
@login_required
def list_view(request):
zhibo_list = CreativeZhibo.objects.filter(is_delete=0).order_by('-create_time') # 把没有删除的数据按照时间顺序展示出来
'''这个是为了搜索框里是否有关键字,如果搜索框有值传过来的话,就根据值查出相匹配的,目前只以素材名称为匹配条件'''
if request.method == 'POST':
keyword = request.POST.get('keyword', '')
zhibo_list = zhibo_list.filter(name__contains=keyword)
pagination = list_page(request,list=zhibo_list,display=10,after_range_num=3,bevor_range_num=2)
content = {
'active_menu' : '素材中心',
'zhibo_list': pagination,
# 'page_range': page_range,
}
return render(request,'creative/materialCenter.html',content)
settings.py
LOGIN_URL = '/login/' #这个路径需要根据你网站的实际登陆地址来设置