Django restframework:POST请求不断收到401错误

时间:2019-08-22 01:46:24

标签: django-rest-framework django-unittest

我尝试在Docker上使用django restframwork构建rest api,并希望在下面运行测试,但是我一直收到401错误。

我可以登录django管理页面和restframework仪表板,没有任何问题。 我以为是因为令牌认证,但还是一样。 当我登录Restfrawork仪表板时,它完全可以正常工作

我尝试在标头中添加令牌,但仍未解决。 希望我能在这里得到一些帮助。

views.py

from rest_framework import status
@api_view(['POST'])
def send_quote(request, format=None):
    if request.method == 'POST':
        data = {'dummy':'dummy item'}
    return Response('dummy', status=status.HTTP_201_CREATED)

tests.py

import json

from django.test import TestCase, Client
from rest_framework import status
from rest_framework.test import APIClient, APITestCase

client = APIClient()
class DummyTest(APITestCase):
    def setUp(self):
        self.context = {....}
        self.token = 'Token ********'

    def test_send_request(self):
        client.credentials(HTTP_AUTHORIZATION=self.token)
        data = json.dumps(self.context)
        request = client.post('/api/', data, format='json')
        self.assertEqual(request.status_code, status.HTTP_201_CREATED)

settings.py

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
       'rest_framework.authentication.TokenAuthentication',
    ],
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAdminUser',
        'rest_framework.permissions.IsAuthenticated',
    ],
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 10,
}

0 个答案:

没有答案