Учетные данные аутентификации Django Rest APi
Я работаю над проектом, используя Django в качестве резервного сервера и flutter в качестве fronted framework, сегодня я столкнулся с проблемой, когда я пытаюсь POST данные из приложения flutter UI в базу данных сервера Django, используя REST API, я продолжаю получать эту ошибку
.
"detail": "Учетные данные для аутентификации не были предоставлены".
Проблема в том, что когда я делаю POST запрос из веб-браузера, он работает нормально. Думаю, мне нужно предоставить больше информации серверу Django, чтобы приложение flutter прошло аутентификацию, и тогда я смогу отправлять данные. Вот метод flutter
Future<CreateProduct> submitProduct(String name , String price , String brand , String countinstock , String category , String description) async {
String createProductUri = "http://127.0.0.1:8000/api/products/create/";
final response = await http.post(Uri.parse(createProductUri),body: {
"name": name,
"price": price,
"brand": brand,
"countInStock": countinstock,
"category": category,
"description": description
});
if (response.statusCode == 201){
final responseString = response.body;
return createProductFromJson(responseString);
}
}
и запрос Django
@api_view(['POST'])
@permission_classes([IsAdminUser])
def createProduct(request):
user = request.user
data = request.data
product = Product.objects.create(
user=user,
name=data['name'],
price=data['price'],
brand=data['brand'],
countInStock=data['countInStock'],
category=data['category'],
description=data['description'],
)
serializer = ProductSerializer(product, many=False)
return Response(serializer.data)
попробуйте это:
final response = await http.post(Uri.parse(createProductUri),
headers:{"Accept": "application/json",
'Content-Type': 'application/json'},
body: {
"name": name,
"price": price,
"brand": brand,
"countInStock": countinstock,
"category": category,
"description": description
});
используя это
headers: {
"Authorization": 'Bearer token'
}
решил проблему