django中用户登入时初始化session中保存的数据

挨T榕 2020-05-31

def login(request):
    if request.method == ‘GET‘:
        return render(request, ‘login.html‘)

    user = request.POST.get(‘user‘)
    pwd = request.POST.get(‘pwd‘)
    obj = models.UserInfo.objects.filter(name=user, password=pwd).first()

    if not obj:
        return render(request, ‘login.html‘, {‘msg‘: ‘用户名或密码错误‘})
    permission_queryset = obj.role.filter(permission__url__isnull=False).values(‘permission__url‘,
                                                                            ‘permission__title‘,
                                                                            ‘permission__is_menu‘,
                                                                            ‘permission__icon‘).distinct()
    menu_list = []
    permission_list = []
    for item in permission_queryset:
        permission_list.append({‘permission_url‘: item[‘permission_url‘]})
        if item[‘permission__is_menu‘]:
            menu_list.append({‘icon‘: item[‘permission__icon‘],
                              ‘title‘: item[‘permission__title‘],
                              ‘url‘: item[‘permission__url‘]})
    request.session[‘user_info‘] = {‘id‘: obj.id, ‘name‘: obj.name}
    request.session[‘permission_list‘] = permission_list
    request.session[‘menu_list‘] = menu_list

    return HttpResponse(‘...‘)

相关推荐