【发布时间】:2021-06-30 18:58:46
【问题描述】:
这是视图:
@api_view(['POST'])
@permission_classes([IsAdminUser])
def createProduct(request):
user = request.user
product = Product.objects.create(
user=user,
name='Sample Name',
price=0,
brand='Sample Brand',
countInStock=0,
category='Sample category',
description='',
)
product.save()
serializer = ProductSerializer(product, many=False)
Response(serializer.data)
这里是 urls.py
urlpatterns = [
path('api/products/create/', product_views.createProduct, name='create-product'),
]
这是前端操作
export const createProduct = () => async (dispatch, getState) => {
try {
dispatch({ type: PRODUCT_CREATE_REQUEST });
const {
userLogin: { userInfo },
} = getState();
const config = {
headers: {
"Content-type": "application/json",
Authorization: `Bearer ${userInfo.token}`,
},
};
const { data } = await axios.post('/api/products/create/',{}, config);
dispatch({
type: PRODUCT_CREATE_SUCCESS,
payload: data,
});
} catch (error) {
dispatch({
type: PRODUCT_CREATE_FAIL,
payload:
error.response && error.response.data.detail
? error.response.data.detail
: error.message,
});
}
};
显示“详细信息”:“不允许使用方法“POST”。” .似乎一切对我来说都很好。等待听取您的意见。
如果我使用 get 方法,那么它会显示创建实例错误。我尝试了我所知道的一切。
【问题讨论】:
-
在没有
@permission_classes的情况下进行测试 - 结果相同? -
是的,结果是一样的。
-
方法不允许:/api/products/create/ [01/Jul/2021 12:14:29] "POST /api/products/create/ HTTP/1.1" 405 41
标签: reactjs django django-rest-framework axios