Django Rest Framework – Authentication credentials were not provided

StackOverflow

I"m developing an API using Django Rest Framework. I"m trying to list or create an "Order" object, but when i"m trying to access the console gives me this error:

{"detail": "Authentication credentials were not provided."}

Views:

from django.shortcuts import render
from rest_framework import viewsets
from django.contrib.auth.models import User
from rest_framework.renderers import JSONRenderer, YAMLRenderer
from rest_framework.response import Response
from rest_framework.views import APIView
from order.models import *
from API.serializers import *
from rest_framework.permissions import IsAuthenticated

class OrderViewSet(viewsets.ModelViewSet):
    model = Order
    serializer_class = OrderSerializer
    permission_classes = (IsAuthenticated,)

Serializer:

class OrderSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = Order
        fields = ("field1", "field2")

And my URLs:

# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib import admin
from django.utils.functional import curry
from django.views.defaults import *
from rest_framework import routers
from API.views import *

admin.autodiscover()

handler500 = "web.views.server_error"
handler404 = "web.views.page_not_found_error"

router = routers.DefaultRouter()
router.register(r"orders", OrdersViewSet)

urlpatterns = patterns("",
    url(r"^api-auth/", include("rest_framework.urls", namespace="rest_framework")),
    url(r"^api-token-auth/", "rest_framework.authtoken.views.obtain_auth_token"),
    url(r"^api/", include(router.urls)),
)

And then I"m using this command in the console:

curl -X GET http://127.0.0.1:8000/api/orders/ -H "Authorization: Token 12383dcb52d627eabd39e7e88501e96a2sadc55"

And the error say:

{"detail": "Authentication credentials were not provided."}

Answer rating: 187

If you are running Django on Apache using mod_wsgi you have to add

WSGIPassAuthorization On

in your httpd.conf. Otherwise, the authorization header will be stripped out by mod_wsgi.





Get Solution for free from DataCamp guru