2015-06-10 52 views
2

我試圖通過React窗體使用迴流操作發佈新對象。那部分工作正常。但是,當我嘗試以編程方式獲取該對象時,該對象按預期發佈,但它似乎無法訪問,除非我註銷,重新啓動本地服務器,或者有時甚至僅手動訪問api頁面。Django Rest框架+ React + Reflux:無法獲得新對象

我似乎無法得到一致的行爲,當我可以得到的對象,當我不能。它看起來似乎查看api頁面,然後返回到我的應用程序頁面有某種影響,但我爲什麼不知所措。也許有人可以爲我解釋這一點。

有一點可以肯定的是POST請求正常工作,因爲當我手動檢查它時,對象總是在那裏。另外,如果您在下面的代碼中注意到,我檢查api頁面上的最後一個對象是什麼,並且控制檯響應以前是最後一個項目。所以我能夠以編程方式訪問api頁面,但我創建的對象不在那裏(儘管這是我手動訪問該頁面)。請注意,刷新產生相同的結果。

任何想法可能出現問題或爲什麼會發生這種情況?

這裏的動作:

MainActions.getUserProfile.listen(function(user) { 
    request.get('/api/page/').accept('application/json').end((err, res) => { 
    if (res.ok) { 
     var profiles = res.body; 
     var filteredData = profiles.filter(function (profile) { 
      if (profile) { 
       return profile.user === user 
      } 
      else { 
       console.log('No Profile yet.') 
      } 
     }); 

     if (filteredData[0]) { 
      var data = { 
       user: filteredData[0].user, 
       ... 
      }; 
      ... // other actions 
     } else { 
      console.log(profiles[profiles.length - 1].user) 
     } 

    } else { 
     console.log(res.text); 
    } 
    }); 
}); 

回答

0

問題結束了與具有最大年齡= 600的響應的Cache-Control頭之中。將其更改爲max-age = 0解決了該問題。在這種情況下,提供緩存響應沒有多大意義,所以我將其添加到我的序列化程序的ViewSet中:

def finalize_response(self, request, *args, **kwargs): 
    response = super(MyApiViewSet, self).finalize_response(request, *args, **kwargs) 
    response['Cache-Control'] = 'max-age=0' 
    return response