2014-12-13 36 views
8

如何讓django消息框架與rest_framework一起工作?與rest_framework一起使用django消息框架

這是我的看法

@api_view(['GET', 'POST']) 
def myview(request): 
    if request.method == 'GET': 
     #return a Response object 
    else: 
     #process post data 
     messages.success(request, 'Success') 
     return Response(response) 

我遇到以下錯誤

add_message() argument must be an HttpRequest object, not 'Request' 

這是因爲rest_framework不使用正常HttpRequest對象,在Django使用 默認。

如何使用消息框架與休息框架?

+0

的問題似乎不再發生在DRF 3.1 – Kos 2015-11-10 11:12:39

回答

17

DRF視圖不使用HttpRequest但使用rest_framework.request.Request,(讀here),您可以訪問的對象,您需要使用

messages.success(request._request, 'Success') 

反正這段代碼有感覺只有當你使用BrowsableAPIRenderer

+0

我使用不同的http請求來讀取消息,因此這對我很有用。謝謝 – rjv 2014-12-13 09:00:19

+0

在這裏必須使用私有變量是可怕的... – aehlke 2016-11-27 20:47:57

+0

我們不需要再做這個(3.6)。對於我來說,傳遞請求的工作很好。 – psychok7 2017-05-27 13:07:39