2014-12-04 35 views
5

API'mize gönderme yapmakta sorun yaşıyorum ve hatanın ne anlama geldiğini tam olarak anlayamıyorum. Önemliyse, Django REST kullanıyorum ve geri izlemeyi dahil ettim.'WSGIRequest' nesnesinin 'data' öznesi yok

if (repeat == false) { 
    post_data = {'User': usernameInput} 
    $.ajax({ 
     type: 'POST', 
     url: '/0/addUser', 
     data: post_data, 
     async: true 
    }) 
} 

class AddUser(APIView): 
    def post(self, request, format = None): 
     serializer = UserSerializer(data=request.data) 
     if serializer.isvalid(): 
      serializer.save() 
      return Response(serializer.data, status=status.HTTP_201_CREATED) 


Traceback: 
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in get_response 
    111.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/Library/Python/2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view 
    57.   return view_func(*args, **kwargs) 
File "/Library/Python/2.7/site-packages/django/views/generic/base.py" in view 
    69.    return self.dispatch(request, *args, **kwargs) 
File "/Library/Python/2.7/site-packages/rest_framework/views.py" in dispatch 
    403.    response = self.handle_exception(exc) 
File "/Library/Python/2.7/site-packages/rest_framework/views.py" in dispatch 
    400.    response = handler(request, *args, **kwargs) 
File "/Users/rae/Desktop/112/djangotemplate/notes/views.py" in post 
    23.  serializer = UserSerializer(data=request.data) 
File "/Library/Python/2.7/site-packages/rest_framework/request.py" in __getattr__ 
    436.   return getattr(self._request, attr) 

cevap

8

Django DİNLENME Çerçeve Django tarafından geçirilen HttpRequest nesneyi sarar ve (Özel oluşturma ve başka bir kimlik doğrulama tabakası gibi) bazı ek işlevler ekler kendi Request nesnesi vardır. Var olmayan Request nesnesinde herhangi bir özellik erişilirse, otomatik olarak temeldeki HttpRequest'a proxy uygular, böylece genellikle farkı fark etmezsiniz. DRF 2.x

, Request mülkiyet verilerinin yanı sıra tespit edilmiştir dosyaların geçirilen saklayan DATA ve FILES özellikleri vardır. Bunlar DRF 3.0'da birleştirildi ve tek bir data özelliği ile değiştirildi. DRF 3.0 yayımlandığı için, tüm belgeler şimdi yeni Request.data özelliğini yansıtır.

Django REST Framework 2.x kullanıyor görünüyorsunuz, ancak DRF 3.0'da tanıtılan yeni özelliğe erişmeye çalışıyorsunuz. Request nesnesinde bulunmadığından, bulunamadığı yerde HttpRequest nesnesine proxy uygulanır.

+7

3.0.4 kullanıyorum ve aynı hatayı alıyorum. Ben hata ayıklama isteğini saklamak için bir middleware kullanıyorum ve 'process_response '' request.data' aramaya çalışıyorum' 'no attribute' data '' hatasını veriyor. Fikirler? – awidgery

+0

Ben djangorestframework-jwt 1.9.0 ile DRF 3.5.3 kullanıyorum ve bu hatayı görüyorum. Düşüncesi olan var mı? –

İlgili konular