Psynora :
here i tried with custom user login in djangorestfulapi but i am getting error that "detail": "Method \"POST\" not allowed." . can anybody please explain where i am getting wrong?
class LoginAPIView(APIView):
def user_login(self,request,format=None):
# context = RequestContext(request)
if request.method == 'POST':
user = ''' SELECT * FROM users '''
# Gather the username and password provided by the user.
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
print("auth",str(authenticate(username=username, password=password)))
if user:
# Is the account active? It could have been disabled.
if user.is_active:
login(request, user)
return HttpResponseRedirect('/')
else:
return HttpResponse("xxx")
else:
# Bad login details were provided. So we can't log the user in.
print ("Invalid login details: {0}, {1}".format(username, password))
return HttpResponse("Invalid login details supplied.")
endpoint url:
path('api/login/',LoginAPIView.as_view(), name='login'),
Muhammad Hassan :
In class based views, you should define separate method for separate http methods like this
class LoginAPIView(APIView):
def post(self,request,format=None):
user = ''' SELECT * FROM users '''
# Gather the username and password provided by the user.
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
print("auth",str(authenticate(username=username, password=password)))
if user:
# Is the account active? It could have been disabled.
if user.is_active:
login(request, user)
return HttpResponseRedirect('/')
else:
return HttpResponse("xxx")