当使用django的基本登录时,是否有一种方法可以让角色获得当前用户

时间:2014-01-22 15:26:48

标签: django angularjs

一切都在我的头衔中。我想获取当前用户信息,因为我需要在我的视图中根据用户的权限显示操作(删除/编辑)。

我使用Django的基本身份验证(/ login / logout),我没有改变任何东西。有没有办法监听此登录/注销操作并在Angular上下文中检索此信息?

角度很新,我正在寻找一些可以帮助我朝一个或另一个方向前进的信息。

实际上,我没有用于经过身份验证的用户的REST API。

我找到了一些有趣的文章Best place/way to store 'global' data such as 'current logged in user' / How do I store a current user context in Angular?但是现在我说我没有AuthService只是Django的基本登录/注销。

我使用Django Rest框架对我的项目进行了一些操作(比如我的一些模型的post / delete / read / update),并且它可以与angularjs一起使用。但我对Django提供的基本身份验证感到满意,所以我不想重写它。但我不知道如何倾听,如果可能的话。

我知道这是一个广泛的问题,现在我没有代码可以显示,因为经过几个小时的研究,我不知道我需要从哪里开始。 如果它是广泛的我将删除它。

谢谢,

1 个答案:

答案 0 :(得分:3)

好的,你可以做那样的事情

示例(someUrl是view.py中函数的url): 在角度控制器中添加$ http

$http({method: 'POST', url: '/someUrl'}).
  success(function(data){
      //process aswer
  });

在djnago view.py中:

from django.shortcuts import HttpResponse
import json

def check_login(request):
    if request.user.is_authenticated():
        return HttpResponse(json.dumps({'result': {'logged': True}, 'user':      request.user.username}),
                        content_type="application/json")
    else:
        return HttpResponse(json.dumps({'result': {'logged': False}}),
                        content_type="application/json")