我正在尝试将 json 数据发布到我的 Django Rest Framework APIView。
当我使用 DRF api 发布表单时一切正常,但是当我尝试使用外部应用程序(在我的例子中是 Angular2)时,request.data
变量为空。
我的 API View :
class CreatePaymentView(views.APIView):
def post(self, request, *args, **kwargs):
print(request.data)
return None
我的网址:
url(r'payment/create', views.CreatePaymentView.as_view(), name='CreatePayment'),
我的 Angular2 帖子:
createPayment(): Observable<any> {
let body = JSON.stringify({test_data: 'whatever'});
let headers = new Headers({
'Content-Type': 'application/json',
'X-CSRFToken': this.cookiesService.csrftoken,
'Authorization': `Token ${this.logged.user.token}`
});
let options = new RequestOptions({ headers: headers });
return this.http.post(environment.server_url_api + 'payment/create/', body, options)
.map(response => {
return response;
});
}
我的应用程序的所有其他帖子都运行良好,但我所有其他 View 都是 DRF ModelViewSet,这就是为什么我认为我的错误不是来自 CRF。我怀疑我的 Django View 有问题。
当我在 CreatePaymentView
中读取 request
变量时,数据是一个空的 JSON 而不是 {test_data: 'whatever'}
。
使用 DRF 发送简单 POST 的最佳做法是什么?
最佳答案
如评论中所述,问题似乎出自带有断点的 Visual Studio 监视功能。无需查看带断点的代码,一切正常。
关于post - Django Rest Framework APIView 发布数据为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40708136/