Angularjs 在Angular模块中获取Django request.user
我对Angular是个新手,我正试图找出最好的方法。在Django视图中,我对一个用户进行身份验证,并将该用户存储在request.user中。是否有方法在角度模块中检索request.user。我可以通过Angular的$http服务检索它吗?环顾四周,但找不到解决方案…但,我想我会尝试好的ole堆栈溢出Angularjs 在Angular模块中获取Django request.user,angularjs,django,http,request,Angularjs,Django,Http,Request,我对Angular是个新手,我正试图找出最好的方法。在Django视图中,我对一个用户进行身份验证,并将该用户存储在request.user中。是否有方法在角度模块中检索request.user。我可以通过Angular的$http服务检索它吗?环顾四周,但找不到解决方案…但,我想我会尝试好的ole堆栈溢出 function bindPusher() { var defer = $q.defer(); var channelName = 'private
function bindPusher() {
var defer = $q.defer();
var channelName = 'private-account-' + Session.account.id;
var channel = $pusher.client.subscribe(channelName);
channel.bind('pusher:subscription_succeeded', function (data) {
$log.debug('Pusher subscribed: ' + channel.name);
PushListener.bindAndListen(channel);
defer.resolve(data);
});
channel.bind('pusher:subscription_error', function (status) {
if (status === 403) {
var msg = 'Pusher channel not authorized.';
$log.warn(msg);
defer.reject(msg);
}
});
return defer.promise;
}
Angular在浏览器中运行,Django在服务器上运行。使用JSON字符串将Django的
request.user
数据发送到浏览器,Angular可以在浏览器中将该JSON字符串展开为Javascript对象
因此,您是正确的,$http.get('/path/my user.json')
可以读取请求.user
的数据
$http.get('/path/my-user.json').then(function (response) {
$scope.user = response.data.user;
}, function (reject) {
// error
});
在Django视图中,您将以JSON编码字符串的形式发送数据
def my_view(request):
data = {'username': request.user.username,
'is_staff': request.user.is_staff}
return JsonResponse(data)
但是,这些都是Django和Angular,所以一旦你了解了基本知识,就有很多事情需要自动化。也就是说,您的angular是在django服务器上运行的(在django模板中使用angular)还是单独运行的?另外,如果您在django中使用angular,是否使用特定的包?是的,我的angular是在django服务器上运行的,我不完全确定我是否使用特定的包,示例?您希望如何处理Angular中的用户?以前的身份验证使用Pusher,并使用帐户id获取频道名称。诚然,我不完全确定Pusher是做什么的,所以我将在问题的底部附加angular代码。啊,我明白了,我很好奇为什么他在代码的一部分使用“window”来获取帐户id。我承认我对angular很陌生,但它开始变得越来越有意义了。