2016-11-20 39 views
1

我試圖將json數據發佈到我的Django Rest Framework APIView。 當我使用DRF API後表單時,所有的工作都很好,但是當我嘗試使用外部應用程序(Angular2在我的情況下)時,request.data變量是空的。Django Rest Framework APIView發佈數據爲空

我APIView:

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; 
     }); 
    } 

我所有的應用程序的其他職位工作得很好,但我所有的其他意見是DRF ModelViewSet,這就是爲什麼我調整我的錯誤不是來自CRF。我懷疑django視圖有什麼不好的地方。

當我讀取我的CreatePaymentView中的request變量時,數據是空的JSON而不是{test_data: 'whatever'}

使用DRF發送簡單POST的最佳做法是什麼?

+0

您可以在瀏覽器的網絡選項卡中調試請求嗎?也許問題出在那裏,因爲後端代碼中的一切看起來都很好。 – lucasnadalutti

+0

謝謝@lucasnadalutti您的評論。看起來問題來自帶有斷點的Visual Studio監視功能。沒有看斷點的代碼,一切正常。 – Ben

回答

0

正如在註釋中解釋的那樣,問題來自帶有斷點的Visual Studio監視功能。沒有看斷點的代碼,一切正常。