2017-03-10 83 views
1

我只想試試簡單的Django rest框架代碼,我用APIVIEW並通過瀏覽器發佈數據。Django rest框架請求數據總是爲空

CODE:

class GetData(APIView): 

    def post(self, request, format=None): 
     if request.method == 'POST': 
      item_id = request.data.get('item_id') 
      return Response({"return": "OK ","item_id":item_id}) 
     else: 
      return Response({"return": "NOT OK "}) 

上述代碼應呼應ITEM_ID任何我 「POST」 編輯。但結果始終爲空。

POST數據:

{ "item_id" : "3456787"} 

結果:

{"item_id":null,"return" :"OK "} 

我不明白,我哪裏錯了。上面的代碼在我的Loaclhost中正常工作,但在生產服務器中不起作用。

+0

是什麼數據,你要留言?什麼是標題? – Shaumux

+0

我正在使用可瀏覽的api。使用chrome browesr發佈數據。 mediaType是'application/json'。 – Naroju

+0

'Content-Type:application/json' – Naroju

回答

0

開始與最新的Django和DRF新項目,改變了以下

APP1/views.py

class GetData(APIView): 
def post(self, request, format=None): 
    if request.method == 'POST': 
     item_id = request.data.get('item_id') 
     return Response({"return": "OK ","item_id": item_id}) 
    else: 
     return Response({"return": "NOT OK "}) 

只凸出更改/ settings.py

INSTALLED_APPS = [ 
'django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'rest_framework' 
] 

應用/urls.py

from django.conf.urls import url 
from django.contrib import admin 
from app1.views import GetData 
urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^test/', GetData.as_view()) 
] 

查詢:

curl -X Post http://localhost:8000/test/ -H "Content-Type: application/json" -d '{ "item_id":"3456787"}' 

結果:

{"item_id":"3456787","return":"OK "}% 
+0

正如我在前面提到的問題。它在本地主機上正常工作,但不在生產服務器上。我在這裏發現了類似的問題https://github.com/tomchristie/django-rest-framework/issues/3623。這是一個Apache配置的問題。但鏈接中沒有正確的解決方案 – Naroju

相關問題