gpt4 book ai didi

基于 Django 类的 View ,不允许使用 POST 方法

转载 作者:行者123 更新时间:2023-12-04 21:36:56 37 4
gpt4 key购买 nike

我正在学习django。

我收到方法帖子不允许 405 错误。我在我的 View 类中定义了 POST,如下所示。

class LoginView(views.APIView):

def get_permissions(self):
if self.request.method in permissions.SAFE_METHODS:
return (permissions.AllowAny(),)

if self.request.method == 'POST':
return (permissions.AllowAny(),)

def post(self, request, format=None):
data = json.loads(request.body)

email = data.get('email', None)
password = data.get('password', None)

account = authenticate(email=email, password=password)

if account is not None:
if account.is_active:
login(request, account)

serialized = HUserAuthSerializer(account)

return Response(serialized.data)
else:
return Response({
'status': 'Unauthorized',
'message': 'This account has been disabled.'
}, status=status.HTTP_401_UNAUTHORIZED)
else:
return Response({
'status': 'Unauthorized',
'message': 'Username/password combination invalid.'
}, status=status.HTTP_401_UNAUTHORIZED)

用户应用程序中的 urls.py 具有以下内容:
url(r'^login/$', LoginView.as_view(), name='login'),

项目级别的 urls.py 具有以下内容:
url(r'^users/', include(users_urls)),

这使我的网址

http://localhost:8000/users/login/

我可以从上面的日志中看到 URL。

前端angularJS代码如下:
appData.service("signInService", function($http, $q) { 

this.signIn = function (signin) {

var url = "http://localhost:8000/users/login/";
console.log(url);

var defer = $q.defer();

$http.post(url, {
email: signin.email,
password: signin.password},
{callback:"JSON_CALLBACK", _dont_enforce_csrf_checks:"True"}, {post:{method: "JSONP"}})
.success(function(response){
defer.resolve(response);
})
.error(function(response){
defer.reject(response);
})

return defer.promise;
};

});

最佳答案

你可能发帖到http://localhost:8000/api/v1/users/login而不是 http://localhost:8000/api/v1/users/login/ (注意尾部斜线)

尝试修改

url(r'^login/$', LoginView.as_view(), name='login'),


url(r'^login/?$', LoginView.as_view(), name='login'),

关于基于 Django 类的 View ,不允许使用 POST 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35306865/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com