Django Rest Framework/AngularJS-用户登录后不会被重定向到任何地方,即使我在settings.py中设置了LOGIN\u REDIRECT\u URL

Django Rest Framework/AngularJS-用户登录后不会被重定向到任何地方,即使我在settings.py中设置了LOGIN\u REDIRECT\u URL,angularjs,django,django-rest-framework,django-rest-auth,Angularjs,Django,Django Rest Framework,Django Rest Auth,根据这个链接: 我需要将以下代码添加到我的URL.py中: url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), 当我添加这个时,用户可以通过转到“api auth”URL并使用默认的DjangoRestFramework登录界面登录。成功登录后,用户将被定向到“/test”,因为我的settings.py中有以下代码: LOG

根据这个链接:

我需要将以下代码添加到我的URL.py中:

url(r'^api-auth/', include('rest_framework.urls',
                               namespace='rest_framework')),
当我添加这个时,用户可以通过转到“api auth”URL并使用默认的DjangoRestFramework登录界面登录。成功登录后,用户将被定向到“/test”,因为我的settings.py中有以下代码:

LOGIN_REDIRECT_URL = '/test'
我想让用户能够使用我自己的自定义界面登录,但使用DjangoRestFramework的内置代码登录用户,所以我创建了自己的模板。模板中的登录表单向发送post请求

api-auth/login/
并将用户对象(在JS中由用户名和密码组成)与POST请求一起发送。没有返回错误,因此我假设登录成功。但是,它不会重定向到任何URL(我希望它重定向到“/test”)

你知道为什么它不重定向到任何地方吗?我如何使它重定向到“/测试”


编辑:我也在前端使用AngularJS。

登录\重定向\ URL
基本上是来自
django.contrib.auth
的,所以除了其他auth后端之外,我不会使用它,至少不必/自动使用它

另外,如果您通过REST登录,比如从AngularJS登录,即使REST API登录成功并返回重定向响应,也不能保证AngularJS应用程序将导航到该页面,因为登录REST API是使用XHR请求(从
$http
$resource
等)命中的

我使用的REST auth库与您稍有不同,名为
django REST auth
(不是DRF附带的BrowsableAPI),我从AngularJS进行身份验证,调用成功后,我只需将应用导航到一个新的URL

djangoAuth.login(username, password).then(function(){
    // make angularJS navigate to new page when login is successful
    // $location.path(...) or some other way
});
底线是,因为您有一个auth API,所以可以使用登录表单创建一个小的AngularJS页面,然后在登录成功时使用AngularJS重定向

值得一看

我使用的这两个lib是要一起使用的,它们提供REST-auth-over-DRF和可选的AngularJS lib来帮助前端


好的,谢谢。阅读完您的帖子后,我考虑的方法是向后端发送一个post请求,如果请求成功,则按如下方式重定向:self.loginUser=function(){$http.post(“/custom-api-auth/login”,self.loginUser)。然后(function(response){//如果登录成功。使用$location.path(…);},函数(响应){//否则,如果有错误,请在此处处理错误};},重定向到路径;这也是一种有效且正确的方法吗?