所以我試圖提供用戶註冊的應用程序中使用Django休息框架。我現在面臨的問題是,DRF基本上要求的請求被認證django rest框架用戶註冊
這被設置:
DEFAULT_AUTHENTICATION = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.OAuth2Authentication',
),
}
這是視圖:
@permission_classes((AllowAny,))
@csrf_exempt
@api_view(['POST'])
def create_auth(request, format=None):
data = JSONParser().parse(request)
serialized = UserSerializer(data=data)
if serialized.is_valid():
user = User.objects.create_user(
serialized.init_data['email'],
serialized.init_data['username'],
serialized.init_data['password'],
)
user.groups = serialized.init_data['groups']
user.save()
serialized_user = UserSerializer(user)
return Response(serialized_user.data, status=status.HTTP_201_CREATED, headers={"Access-Control-Allow-Origin": "http://127.0.0.1:8000/"})
else:
return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST, headers={"Access-Control-Allow-Origin": "http://127.0.0.1:8000/"})
這是測試:
def test_user_register(self):
user_data = {'username': 'testusername',
'email': "[email protected]",
'groups': [1],
'password': 'testpassword',
}
resp = self.client.post("/auth/register", json.dumps(user_data), content_type="application/json")
print resp.content
self.assertEquals(resp.status_code, 200)
self.assertContains(resp, user_data["username"], 1, 201)
並且這是錯誤:
{"detail": "Authentication credentials were not provided."}
我在做什麼錯?裝飾者是否應該允許未經過身份驗證的請求? 甚至更好:哪一種是通過REST API註冊用戶的正確方式?
感謝, 阿迪
http://stackoverflow.com/q/30085996/764592 – Yeo