I am trying to upgrade my django 1.9 to django 2.0. It is working fine for GET() but I am getting error in POST().
My views.py
is:-
class AccountInfoUpdate(APIView):
authentication_classes = [IsAuthenticated]
def post(self, request):
user = request.user
user_profile = UserProfile.objects.get(user=user)
name = False
contact = False
if "name" in request.data:
user_profile.name = request.data.get('name')
user_profile.save()
name = True
if "contact" in request.data:
user_profile.contact = request.data.get('contact')
user_profile.save()
contact = True
if user_profile.affiliate_code is not None and (name or contact):
result = service.update_affiliate(user_profile.affiliate_code, name=user_profile.name,
contact=user_profile.contact)
return Response({'Message': 'Account info updated successfully!'})
I am getting this error:-
user_auth_tuple = authenticator.authenticate(self)
rest_framework.request.WrappedAttributeError: 'IsAuthenticated' object has no attribute 'authenticate'
If I removed or comment 'rest_framework.authentication.SessionAuthentication',
from REST_FRAMEWORK then I am getting this error CSRF Failed: CSRF token missing or incorrect
.
I tried permission_classes = [IsAuthenticated]
and did fallow on Postman but still getting same error.
IsAuthenticated
is a Permission Class
not an Authentication
class. So it should be as
class AccountInfoUpdate(APIView):
permission_classes = [IsAuthenticated]
# your code
UPDATE-1
How to resolve CSRF Failed
error
1. Open a new tab in POSTMAN
2. Provide URL(1)
3. Go to
Authorization
tab(2) and setect Basic Auth
then provide your username and password
4. Then go to Body
tab, and enter your JSON payload.
5. Hit send
button. There you go
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With