从AngularJS调用Django视图函数

时间:2017-03-16 12:00:36

标签: javascript angularjs django

我想在页面加载时获取现有用户的列表。从Angular脚本获取信息时一切正常,但它将存储在服务器端。我做了一个Django视图:

def getUsers(request):
response = {}
response['user'] = {
    'username': 'guy1',
    'password': 'guy1',
    'fName': 'John',
    'lName': 'Smith',
    'email': 'guy1@host.com',
    'role': 'Employee',
    'theme': 'default'
}
return JsonResponse(response)

目前,我只是将我的用户传递给那里,之后它将填充来自postgre数据库的信息。我想我已经设置了正确的网址:

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^', views.dashboard, name='dashboard'),
    url(r'getUsers/', views.getUsers),
]

最后,我在页面加载时调用Angular的视图:

$http.get("getUsers")
    .then(function(output) {
        $scope.testUser = output;
        console.log($scope.testUser);
    });

当我运行所有内容时,浏览器控制台出现错误 output.

关于我做错了什么的任何想法?感谢。

1 个答案:

答案 0 :(得分:0)

我会在这里做两件事。首先,将您的网址格式更改为:

url(r'^getUsers/$', views.getUsers),

其次,将AngularJS代码更改为:

$http.get("getUsers/")
  .then(function(output) {
    $scope.testUser = output;
    console.log($scope.testUser);
});

Django对URL上的“/”敏感(或不存在)。并且更改上面的URL模式使其明确应该查找的内容。在原始情况下,该模式会与getUsersgetUsers/abcgetUsers/12345等匹配。